我有这个数组:
[{"name": "Olvier", "id": 123 }, {"name": "Olvier", "id": 124 }]
现在我的目标是防止再次将相同的对象添加到数组中:
{"name": "Olvier", "id": 123 }
有没有办法做到这一点?
原文由 olivier 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有这个数组:
[{"name": "Olvier", "id": 123 }, {"name": "Olvier", "id": 124 }]
现在我的目标是防止再次将相同的对象添加到数组中:
{"name": "Olvier", "id": 123 }
有没有办法做到这一点?
原文由 olivier 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 Array#some 方法来确定该项目是否已经在数组中:
var arr = [
{ name: 'Olvier', id: 123 },
{ name: 'Olvier', id: 124 }
];
var existingItem = arr[1];
var newItem = { name: 'John', id: 125 };
if (!arr.some(item => item === existingItem)) {
arr.push(existingItem);
}
console.log(arr);
if (!arr.some(item => item === newItem)) {
arr.push(newItem);
}
console.log(arr);
原文由 alexmac 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答872 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
如果你的对象是较早创建的并且与数组中的对象具有相同的引用,则可以使用 indexOf:
否则你可以用 find 检查它: