Opi*_*ton 1 javascript arrays ecmascript-6
我有一个问题,阻止将新对象添加到数组中,该数组具有与数组中对象的现有元素相同的 id 值。我的数组是这样的:
var arr = [
{id:1, name:'Fabricio'},
{id:2, name:'Leontina'},
{id:3, name:'Rodrigo'}];
Run Code Online (Sandbox Code Playgroud)
如果我想添加这样的对象{id:2; name:'Evander'},由于 id 而无法完成。
您可以检查 id 是否在数组中,如下所示:
if(!arr.some(el => el.id === 2))
arr.push({ id: 2, name: "Evander" });
Run Code Online (Sandbox Code Playgroud)
但实际上这是 Map 的一个很好的用例:
const users = new Map([
[1, { name: "one" }],
[2, { name: "two" }]
]);
Run Code Online (Sandbox Code Playgroud)
所以你可以很容易地检查一个 id 是否已经在恒定时间内存在:
if(!users.has(2))
users.set(2, { name: "newtwo" });
Run Code Online (Sandbox Code Playgroud)