var entityName = "",
arrTerms = [],
outputTemplate = '{"%entityName":[%terms]}',
h = {
"Division":
{
"oddTerms":
[
{
"entity": "Sunshine",
"Sunshine": [
{
"count": 2,
"entity": "Dodge"
},
{
"count": 1,
"entity": "Dodge Avenger"
},
]
}
]
}
};
for (var i = 0; i < h.Division.oddTerms.length; i++)
{
entityName=h.Division.oddTerms[i].entity; // "Sunshine"
terms = h.Division.oddTerms[i][entityName];
for (var j = 0; j < terms.length; j++) {
arrTerms.push('"' + terms[j].entity + '"');
}
}
// This will give you '{"Sunshine":["Dodge","Dodge Avenger"]}':
console.log(outputTemplate.replace('%entityName', entityName).replace('%terms', arrTerms.join(",")));
編輯:
只是多一些這一點。
如果您不習慣使用JS和對象和數組「文字」,JSON可能會有點混亂。在JS中,您可以通過多種方式定義對象和數組,但最簡單的(也是許多開發人員最喜歡的)就是使用這些文字。
下面是一個對象的例子:
var myObj = {
"some prop":"some value",
"anotherProp":"another value"
}
你可以看一下的myObj
成員在幾個方面:
myObj.anotherProp
// 「其他值」
myObj["some prop"]
//你有如果屬性名稱中有空格,則使用此表單
要循環訪問數組的內容,請使用第二種形式。例如,這是不行的:
for (var strPropName in myObj) {
console.log(myObj.strPropName); // This won't work!
}
相反,你應該循環通過這樣的性質:
for (var strPropName in myObj) {
if (myObj.hasOwnProperty(strPropName)) {
console.log(myObj[strPropName]);
}
}
的if
塊是可選的,但你會避免潛在的問題,如果你總是在你的代碼中包含這個。這也是一些驗證器所要求的。
現在,這裏是一個數組的例子:
var myArray = ["some value", "anotherValue"];
你用數字索引訪問這些:
myArray[0] // "some value"
myArray[1] // "anotherValue"
myArray[2] // undefined
,您可以循環通過他們:
for (var index = 0; index < myArray.length; index++) {
console.log(myArray[index]);
}
你可以在陣列中嵌套對象:
myArray = [{},{},{}];
,你可以在對象中嵌套數組:
myObject = {"arr1":[], "arr2":[], "arr3":[]}
什麼是你希望在你的循環做最後一行? – Andrew
我會提醒它,例如.. bt我應該得到實體道奇和道奇復仇者的價值提醒... – user1371896
s將具有價值陽光從最後一行,並在最後一行,它應該附加價值陽光和獲取實體名稱。我想這個如果字符串包含多個元素,它會比jst陽光更多的值.. – user1371896