如果有一個數組如
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