首页 > 解决方案 > 如何防止添加arraylist的重复对象值?

问题描述

我有一个问题是要防止将新对象添加到具有与数组中对象的现有元素相同的 id 值的数组中。我的数组是这样的:

var arr = [
       {id:1, name:'Fabricio'},
       {id:2, name:'Leontina'},
       {id:3, name:'Rodrigo'}];

如果我想添加这样的对象{id:2; name:'Evander'},由于 id 而无法完成。

标签: javascriptarraysecmascript-6

解决方案


您可以检查 id 是否在数组中:

if(!arr.some(el => el.id === 2))
  arr.push({ id: 2, name: "Evander" });

但实际上这是 Map 的一个很好的用例:

const users = new Map([
 [1, { name: "one" }],
 [2, { name: "two" }]
]);

所以你可以很容易地检查一个 id 是否已经在恒定时间内存在:

if(!users.has(2))
  users.set(2, { name: "newtwo" });

推荐阅读