javascript - 如何判断一个对象是否包含在数组中?

标签 javascript

我有一个数组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/

相关文章:

javascript - RequireJS:将模块与插件捆绑在一起

javascript - 创建带有空 href 的 <a> 链接的最佳方法

javascript - 使用 React-Redux 创建上下文菜单

javascript - Webpack 4 从输出散列中排除条目

javascript - 取消按钮与 jQuery 加载事件的行为不正确

javascript - 删除 JavaScript 中的 DOM 节点以节省内存

javascript - IE 7 条件与 javascript

javascript - 如何从 openlayers3 中的矢量图层获取点坐标?

javascript - YUI 3 中 jQuery(this) 的替代品是什么?

javascript - 如何使用 nodemon 进行 linting?