我有这样的对象,其中“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;
}
它只给出第一个对象。我试着像映射 ids 并比较它,但没有奏效。
任何帮助都会对我有用。
这是因为你总是把 id 添加到tempIndex
数组中,所以它总是认为当前的是重复的。尝试:
function getDistValues(object) {
var distObject = [];
var tempIndex = [];
var length = object.length;
for (var i = 0; i < length; i++) {
if (tempIndex.indexOf(object[i].id) === -1 || i === 0) {
tempIndex.push(object[i].id);
distObject.push(object[i]);
}
}
return distObject;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句