【发布时间】:2014-12-09 21:17:16
【问题描述】:
我无法弄清楚如何限制我的输出。我必须比较对象中每个属性的值,但我只希望每个 ID 有 1 个输出。
有什么想法吗?
//JSON 示例
var obj1 = {
"Summary" :
[
{
"ID" : "1234",
"Name" : "John",
"Status" : "Green",
},
{
"ID" : "5678",
"Name" : "Mike",
"Status" : "Green",
},
{
"ID" : "9012",
"Name" : "Tom",
"Status" : "Red",
}
]
};
//我的代码
var attributesvalues = ["Mike", "Green", "Red"];
var sg1 = [];
var k;
var l;
//push name of each attribute value to a new array
//one example
sg1.push(attributesvalues[0]);
//go through each ID, if name value exist, push the #1, if not, push nothing
for (k = 0; k < obj1.Summary.length; k++) {
for (l in obj1.Summary[k]) {
if (sg1[0] == obj1.Summary[k][l]){
sg1.push("1");
}
else{
sg1.push("");
}
}
}
输出应该如下所示 - 我只想要 4 个值,每个 ID(3) 的名称 + 1 或 ""
sg1 = [“迈克”、“”、“1”、“”]
sg2 = ["绿色", "1", "1", ""]
相反,我得到的是每个属性的名称 + 1 或“”。
sg1 = [“迈克”、“”、“”、“”、“”、“1”、“”、“”、“”、“”]
sg2 = ["绿色", "", "", "1", "", "", "1", "", "", ""]
您可以提供的任何其他指示或提示将不胜感激。我仍在尝试掌握 JS。
【问题讨论】:
标签: javascript arrays json parsing