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":[]}