📜  按 id 删除重复项 - Javascript (1)

📅  最后修改于: 2023-12-03 14:54:39.282000             🧑  作者: Mango

按 id 删除重复项 - Javascript

在开发过程中,我们经常需要从数组或对象中删除重复项。这里将介绍一种按照对象ID删除重复项的方法。

代码实现

我们可以通过遍历数组或对象中的每个元素,然后将元素ID存储在一个新对象中,如果该ID已经存在于新对象中,则删除该元素。

function removeDuplicatesById(arr) {
  var uniqueObject = {};
  for (var i = 0; i < arr.length; i++) {
    var id = arr[i].id;
    if (!uniqueObject[id]) {
      uniqueObject[id] = true;
    } else {
      arr.splice(i, 1);
      i--;
    }
  }
  return arr;
}
代码解析

此函数的参数是一个数组,该数组包含多个对象。此函数遍历输入数组中的每个元素,并将元素ID存储在“uniqueObject”对象中。如果该ID不存在于“uniqueObject”对象中,则将其添加到对象中。否则,它将使用Array的splice方法从输入数组中删除该元素。

示例

让我们来看一个示例,假设输入数组如下:

var data = [
  { id: 1, name: "Apple", price: 1.15 },
  { id: 2, name: "Orange", price: 0.75 },
  { id: 3, name: "Banana", price: 0.80 },
  { id: 1, name: "Apple", price: 1.15 },
  { id: 4, name: "Grape", price: 2.50 },
  { id: 2, name: "Orange", price: 0.75 }
];

执行“removeDuplicatesById”函数后,输出数组将如下所示:

[
  { id: 1, name: "Apple", price: 1.15 },
  { id: 2, name: "Orange", price: 0.75 },
  { id: 3, name: "Banana", price: 0.80 },
  { id: 4, name: "Grape", price: 2.50 }
]
总结

通过使用上面的方法,我们可以轻松地从数组或对象中删除重复项。这种方法仅参考元素的ID,并且需要保证ID是唯一的。如果元素具有多个属性,则可以修改此方法以参考其他属性。