javascript - 查询具有多个参数的 JavaScript 对象

标签 javascript json

如果我有一个像这样的 JavaScript 对象:

var people = {
    items: [
        { id: "1", name: "j", age: "11", gender: "m"},
        { id: "2", name: "k", age: "22", gender: "f"},
        { id: "3", name: "l", age: "33", gender: "m"},
        { id: "4", name: "m", age: "44", gender: "f"},
        { id: "5", name: "n", age: "55", gender: "m"}
    ]
};

有没有办法可以检索单个“记录”?它需要什么数据类型?

如果我想要(id=4 和 name=m)的“年龄”和“性别”,我该怎么做?

我知道这个设计可能不理想,但我在 LINQ 中思考,数据集不会很大。

最佳答案

像这样:

var personID4 =  people.items.filter(function(person)
{ 
    return person.id === "4";
});

var personID4 =  people.items.filter(function(person)
{ 
    return person.name === "m"; 
});

或者你需要的组合:

var personID4 =  people.items.filter(function(person)
{ 
    return person.id === "4" && person.name === "m"; 
});

重要: 建议使用“===”而不是“==”,因为 5 不等于“5”。双重相等会将其评估为真,如果是这种情况,则可以使用“==”。

此外,如果您需要它在 IE8 或更早版本中运行,这适用于 IE9+,请按照此链接中的 polyfill 说明进行操作: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

关于javascript - 查询具有多个参数的 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958979/

相关文章:

javascript - Angular js ng-repeat 和过滤器

javascript - 如何正确地将嵌入式 ruby​​ 代码放入 JavaScript?

ios - 函数类型作为参数类型,如何更改此函数中的 UI 元素值?

javascript - 为什么 WebForms 不断呈现这个 data- 属性?

javascript - 亚马逊 Alexa 自定义插槽备忘录

javascript - CSS 'translate(0px, 0px)' 元素样式的正则表达式匹配值

javascript - 我无法让 JsBarcode 正常工作

python - 修改纸条管道中的JSON

javascript - React json 获取值

json - 使用多线程加载大型 JSON 文件/