我对 JSON 很陌生,所以我什至不确定是否可以完成我想要做的事情。
是否可以根据一个属性获取多个对象? 抱歉,如果这听起来令人困惑。 基本上,当在以下代码中搜索“红色”时,我希望它返回所有带有“红色”的对象。此时,它只返回一个。
var colors = {
"black": {"url": "asdf","tags": "tie"},
"red": {"url": "qwer","tags": "shirt"},
"red": {"url": "lkj","tags": "blazer"},
"grey": {"url": "mnvb","tags": "pants"}
}
document.getElementById('output').innerHTML = (JSON.stringify(colors["red"]));
这里有一个链接,可以查看它在当前状态下如何工作: http://jsfiddle.net/8aqweLhv/
是否可以做到这一点?如果可以,如何做到?
最佳答案
如果您想将多个值与一个键相关联,则需要一个嵌套结构。数组就可以了。
var colors = {
"black": {"url": "asdf","tags": "tie"},
"red": [
{"url": "qwer","tags": "shirt"},
{"url": "lkj","tags": "blazer"}
],
"grey": {"url": "mnvb","tags": "pants"}
};
现在 colors.red
将为您提供数组,您可以像平常一样对其进行迭代。
colors.red.forEach(function(obj) {
console.log(obj.url, obj,tags);
});
(顺便说一句,这不是 JSON。它只是 JavaScript 的对象初始值设定项语法,看起来与 JSON 数据交换格式非常相似)
关于javascript - 基于一个属性检索多个对象 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641780/