我有一个数组arr1
,其中包含所有对象。
var arr1 = [{name:"haha1"},{name:"haha2"}]
我也有一个对象。
var a1 = {name:"haha1"};
那么,如何确定a1
是否等于arr1
中的任何对象?我尝试了 ==
但它不检查对象的属性是否相等。
最佳答案
只需循环数组,并将其中的每个对象与 a1
进行比较。
var arr1 = [{name:"haha1"},{name:"haha2"}]
var a1 = {name:"haha1"};
function objectsEqual(obj1, obj2) {
var equal = obj1.name === obj2.name;
return equal;
}
var i;
for(i = 0; i < arr1.length; i++) {
if(objectsEqual(a1, arr1[i])) {
console.log('a1 is equal to object at index ' + i);
}
}
我创建了一个函数来检查相等性,因为您可能有更多属性需要检查实际代码。因此,您可以在该函数中检查它们,并在需要时在其他地方重复使用该函数。
关于javascript - 如何判断一个对象是否包含在数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33718623/