Есть ли короткий и опрятный способ найти товар в нижеследующем списке с данным searchObject?Сравнение нескольких полей в javascript
var list = [
{ id:1, name: "foo", description: "description 1" },
{ id:2, name: "bar", description: "description 2" },
{ id:3, name: "baz", description: "description 3" },
];
var searchObject = { id: 2, name: "bar" };
searchObject делает НЕ обязательно иметь все свойства элемента в списке. Мне нужен оператор между свойствами: И (id == 2 & & имя == "бар"). Следующее - это то, что я придумал. Есть ли что-нибудь родное в javascript, которое может это сделать?
for (var i in list) {
var found = true;
for (var p in searchObject) {
if (list[i][p] !== searchObject[p]) {
found = false;
break;
}
}
if(found) return list[i];
}
Пожалуйста, не используйте 'для (х в у)' на массивах. [Это НЕ делает то, что вы думаете] (http://stackoverflow.com/a/500531/36866) – some