javascript - 在对象列表中查找重复键的最有效方法

标签 javascript sorting

我有一个要迭代的对象列表。在某些时候,我进行了 ajax 调用以将更多对象添加到列表中(可能多次)。

如果其中一个值与现有值匹配,是否有一种有效的方法可以排除将任何对象添加到列表中?

例如:

现有列表

[
  {"value": "1", "id": "123"},
  {"value": "2", "id": "124"},
  {"value": "3", "id": "125"}
]

排除添加第一个对象,因为它的 ID 已经在列表中

[
  {"value": "1", "id": "123"},
  {"value": "2", "id": "234"},
  {"value": "3", "id": "235"}
]

最佳答案

既然你的 id 是唯一的,为什么不使用像 map 这样的东西。

  • 您可以创建并保存一个单独的 var map = {};
  • 然后每次有新对象进来时,您都执行以下操作:map['123'] = true;

更像是:

if (!map[new_id])
{
    map[new_id] = true;
    your_array.push({"value": "3", "id": "235"});
}
else
{
    // do what you want... maybe update the value
}

因此,通过这种方式,您不会推送任何具有现有 id 的对象。

关于javascript - 在对象列表中查找重复键的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18071507/

相关文章:

javascript - video.js - 在播放期间找到搜索的开始时间

linux - 以自然方式对制表符分隔的文本文件的字母数字和数字列进行排序

javascript - QuickSort 算法因 stackoverflow 错误而失败

c - 字典排序,C 语言编程,Stephen Kochan,第 10 章,练习 10

javascript - 如何让几个网页在移动设备上显示不同

javascript - AWS Cognito JS如何允许访问s3对象(特定的html页面)

javascript - 刷新 Google Maps API V3 图层

javascript - 有没有办法在不使用Webview的情况下从html5调用android中的函数

sql-server-2005 - SQL Server 2005 Unicode字符串排序问题

javascript - 如何使用 javascript 让文本出现在文本字段中?