我有一个对象数组,我需要防止将重复的对象添加到数组中。我尝试了以下代码来检查重复项:
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/