如果有一个数组如
var people = [
{ "name": "bob", "dinner": "pizza" },
{ "name": "john", "dinner": "sushi" },
{ "name": "larry", "dinner": "hummus" }
];
可以使用Array对象的filter
方法:
people.filter(function (person) { return person.dinner == "sushi" });
// => [{ "name": "john", "dinner": "sushi" }]
在较新的JavaScript实现可以使用一个函数表达式:
people.filter(p => p.dinner == "sushi")
// => [{ "name": "john", "dinner": "sushi" }]
您可以使用map
people.map(function (person) {
if (person.dinner == "sushi") {
return person
} else {
return null
}
}); // => [null, { "name": "john", "dinner": "sushi" }, null]
或reduce
people.reduce(function (sushiPeople, person) {
if (person.dinner == "sushi") {
return sushiPeople.concat(person);
} else {
return sushiPeople
}
}, []); // => [{ "name": "john", "dinner": "sushi" }]
我敢肯定你能概括这个任意键和值搜索谁拥有"dinner": "sushi"
人!
这已被问过。您必须编写自己的函数或使用其他库。 – 2011-03-03 13:47:51
请注意'Object'是Javascript中保留的,''Object''是对象对象,即所有对象的母亲。 – adamse 2011-03-03 14:15:37
问题和接受的答案与多维数组无关,但更多的是通过其项目属性值进行1维数组过滤。 =>他们没有解决我的问题“在多维数组中找到一个值”。 – 2017-02-09 17:44:12