我有一个要迭代的对象列表。在某些时候,我进行了 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/