javascript - 如何防止添加arraylist的重复对象值?
问题描述
我有一个问题是要防止将新对象添加到具有与数组中对象的现有元素相同的 id 值的数组中。我的数组是这样的:
var arr = [
{id:1, name:'Fabricio'},
{id:2, name:'Leontina'},
{id:3, name:'Rodrigo'}];
如果我想添加这样的对象{id:2; name:'Evander'}
,由于 id 而无法完成。
解决方案
您可以检查 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" });
推荐阅读
- spring - 为什么速率限制逻辑应该与应用程序代码而不是 Web 服务器一起放置
- flutter - 无法理解 Dart 中的这种构造函数语法
- php - 从 PHP 中的 SQL QUERY STRING 获取列名
- jquery - 在 IIS 中仅设置 Windows 身份验证时,jQuery Ajax Web API 调用返回 401 未经授权的错误
- amazon-web-services - 如何阻止 AWS ec2 实例自动重启?
- javascript - 是否可以在 Visual Studio 2019 中创建用于使用 TypeScript 开发 javascript 库的项目?
- python - 用pyserial实时绘制2系列数据
- javascript - webpack + shelljs 会抛出“错误:找不到模块'/exec-child.js'”
- git - 将 git 子目录拆分为子模块保留历史记录
- flutter - 如何在 Flutter Web 中导入依赖项?