如果我有一个像这样的 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/