javascript - 基于一个属性检索多个对象 Javascript

标签 javascript

我对 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/

相关文章:

javascript - Chrome 开发者工具 : paused before potential out-of-memory crash

javascript - 避免回调 hell 并组织 Node.js 代码

javascript - 使用 Smoothstate 重新加载 Ajax 后未应用背景 CSS 属性

javascript - 订阅被调用两次

javascript - 将值传递给 Javascript 函数

javascript - 如何利用具有多个成功函数的通用 AJAX 调用

javascript - 使用不同的复选框选择更改选项输入

javascript - iscroll 不会自动工作

javascript - 如何在 html <a> 标签中设置 href

javascript - anchor 跳跃而不是平滑滚动