解析 JSON,查找值匹配项并存储在数组中
Parse JSON, find matches of values and store in array
我很难弄清楚如何限制我的输出。 我必须比较对象中每个属性的值,但是我只想要每个 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("");
}
}
}
输出应如下所示 - 我只需要每个 ID(3) 的 4 个值,name + a 1 或"
sg1 = ["迈克", ", "1", "]
sg2 = ["绿色
相反,我得到了这个 - 每个属性的名称 + 1 或"。
sg1 = ["迈克", ", ", ", "1", ", ", ", "
"]sg2 = ["绿色
您能提供的任何其他指示或提示将不胜感激。 我仍在努力掌握JS的窍门。
在完成整个for-in
循环之前,您不知道您是否匹配。
var found;
for (k = 0; k < obj1.Summary.length; k++) {
found = "";
for (l in obj1.Summary) {
if (obj1.Summary[i][l] == sg1[0]) {
found = "1";
break;
}
}
sg1.push(found);
}
相关文章:
- Meteor会话变量未存储数组
- 在Javascript的Textbox中存储数组中的值
- 如何保留输入复选框值的存储数组
- 如何在 localStorage 中存储数组
- 如何在打包的 chrome 应用中本地存储数组
- 如何在 html5 的本地存储对象中存储数组
- 需要循环访问 json 数据的本地存储数组中存储的 json 对象
- 在 Javascript 中创建存储数组,并在每次单击时推送元素 ID
- 根据选中的复选框存储数组元素
- 如何存储数组javascript
- 存储数组在Chrome扩展
- 什么是最有效的方式来存储数组从PHP到JS/jQuery,这样它是可重用的
- Javascript存储数组值
- 存储数组到Cookie Jquery
- Ruby在遍历函数时尝试存储数组元素
- 如何从mongodb的形式存储数组
- 如何在html中打印存储在本地存储数组中的值
- 使用Firebase存储数组
- 获取字符串格式的MySQL存储数组并转换为JSON对象的数组
- 在html attr中存储数组值的最佳实践