在给定的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 & & name ==“bar”)。以下是我所想到的。有什么本地的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];
}
请不要在数组中使用'for(x in y)'。 [它不会做你的想法](http://stackoverflow.com/a/500531/36866) – some