【发布时间】:2020-07-15 21:15:32
【问题描述】:
我有这样的对象,其中“id”是唯一的。我需要从低于 ES5 的任何版本的 javascript 中的对象数组中删除重复项。我需要根据 id 字段进行比较并删除其重复项。
例子:
Object = [
{id: id_one, value: value_one, label: ABC},
{id: id_one, value: value_one, label: ABC},
{id: id_three, value: value_three, label: ABX},
{id: id_two, value: value_two, label: ABY},
{id: id_four, value: value_four, label: ABD}
];
输出:
result = [
{id: id_one, value: value_one, label: ABC},
{id: id_three, value: value_three, label: ABX},
{id: id_two, value: value_two, label: ABY},
{id: id_four, value: value_four, label: ABD}
];
我试过这样的逻辑,
function getDistValues(object) {
var distObject = [];
var tempIndex = [];
var length = object.length;
for (var i = 0; i < length; i++) {
tempIndex.push(object[i].id);
if (tempIndex.indexOf(object[i].id) === -1 || i === 0) {
distObject.push(object[i]);
}
}
return distObject;
}
它只给出第一个对象。我尝试映射 ID 并进行比较,但没有成功。
任何帮助都会对我有用。
【问题讨论】:
-
在检查
tempIndex.indexOf(object[i].id)之前,您总是先做tempIndex.push(object[i].id);,显然它总是会找到。另外,你能从我这里得到的最好的结果是从 ES2017 解决方案到 ES3 的 babel transpile,因为实际上,这些天谁在编写 ES3?!
标签: javascript object duplicates