javascript - 检查数组是否包含值

标签 javascript arrays object

我有一个对象数组,我需要防止将重复的对象添加到数组中。我尝试了以下代码来检查重复项:

const array = [{ name: 'John' }];

const newName = {
  name: 'John'
};
console.log(array);
console.log(newName);

if (array.includes(newName)) {
  console.log(newName.name + ' exists');
} else {
  console.log('name does not exist');
}

控制台日志显示对象 NewName 与数组 [0] 完全相同。然而,

if(array.includes(newName))

返回错误。

我做错了什么?我也尝试了这篇文章中的解决方案,但没有成功:

How do I check if an array includes an object in JavaScript?

最佳答案

简单地说,您可以使用 array.some 来自 Array.prototype.some() documentation .

在您自己的示例中,您可以对程序进行一些调整:

const array = [{ name: "John" }];

  const newName = {
    name: "John"
  };
  console.log(array);
  console.log(newName);

  if (array.some(object => object.name === newName.name)) {
    console.log(newName.name + " exists");
  } else {
    console.log("name does not exist");
  }

关于javascript - 检查数组是否包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55255296/

相关文章:

javascript - 如何使用 Sequelize 和 Promise 自定义函数来播种数据文件?

java - 在hadoop中序列化数组

c++ - 在 C++ 中优化二维数组

c - 使用分区的数组中的第 K 个最小元素

java - TreeSets 和删除特定的未命名对象

javascript - 如何让javascript对象的一个​​成员引用同一对象的另一个成员?

javascript - 为什么React组件无限更新

JavaScript RegExp 在每个有效和无效输入中返回 false

Java 对象链表。我怎样才能统计每个独特的对象?

javascript - 单击更改 Bootstrap Popover 触发器