Javascript:使用单个属性删除对象数组中的重复项

杰亚·苏里亚·穆图马里

我有这样的对象,其中“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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何首先结合对象的属性,然后使用Javascript删除对象数组中的重复项

javascript从对象数组中删除重复项

删除对象数组Javascript中的重复项

Javascript从对象数组中删除重复项

使用对象从数组中删除重复项

根据对象属性值从 javascript 对象数组中删除重复项

根据 JavaScript 中的属性值从对象数组中删除重复项

删除具有各种属性的对象数组中的重复项

如何从数组对象属性值中删除重复项?

基于 JavaScript 对象数组中的布尔属性删除重复项和过滤

从对象数组中,收集并删除 JavaScript 中所有属性的重复项

在 JavaScript 中的数组中删除对象重复的单个实例

从JavaScript中的对象数组中删除重复项

从 Javascript / Typescript 中的数组中删除子对象重复项

使用 Lodash 从对象数组中删除相同的属性值重复项

基于键从 JavaScript 对象数组中删除重复项

如何删除和计算对象数组中的重复项?- Javascript

比较数组中的对象并删除重复项和更新-Javascript

使用lodash.js删除对象数组中的重复项

使用Javascript从两个对象数组中删除重复项

从对象数组中收集键并将其简化为单个数组并删除重复项

如何从对象数组中删除重复值并使用 JavaScript 更新对象属性

从GeoFire对象数组中删除重复项

从对象数组中删除重复项

从对象的多维数组中删除重复项

如何删除对象数组中的重复项?

从对象数组中删除重复项

删除对象数组中的重复项

如何使用javascript从对象中删除重复项