当前位置: 首页 > 知识库问答 >
问题:

如何基于多个条件从数组中删除重复对象[重复]

谭景福
2023-03-14

我试图通过比较对象中的多个字段来从数组中找到重复的对象。

我想将对象的两个字段与同一数组的其他对象进行比较。

我想露营只是名称和 lname,忽略我的对象内的第 3 个字段链接

  values = [{
    name: 'newton',
    lname: 'king',
    link: '123'
  }, {
    name: 'tom',
    lname: 'kurtz',
    link: '123'
  }, {
    name: 'newton',
    lname: 'king',
    link: '456'
  }, {
    name: 'jan',
    lname: 'heckal',
    link: '123'
  }]

如何查找和删除输出如下的重复对象

  values = [{
    name: 'newton',
    lname: 'king',
    link: '123'
  }, {
    name: 'tom',
    lname: 'kurtz',
    link: '123'
  }, {
    name: 'jan',
    lname: 'heckal',
    link: '123'
  }]

共有1个答案

宰父冠玉
2023-03-14

这几乎是使用javascript从数组中删除重复对象的翻版

 var arrResult=[],
     arr = [{
    name: 'newton',
    lname: 'king',
    link: '123'
  }, {
    name: 'tom',
    lname: 'kurtz',
    link: '123'
  }, {
    name: 'newton',
    lname: 'king',
    link: '456'
  }, {
    name: 'jan',
    lname: 'heckal',
    link: '123'
  }]

for (i = 0, n = arr.length; i < n; i++) {
    var item = arr[i];
    arrResult[ item.name + " - " + item.lname ] = item; // create associative array
}

var i = 0;
var nonDuplicatedArray = [];    
for(var item in arrResult) {
    nonDuplicatedArray[i++] = arrResult[item]; // copy the objects that are now unique
}
console.log(nonDuplicatedArray)
 类似资料:
  • 假设对象数组如下: 如果标签和颜色相同,则为重复条目。在这种情况下,id=1和id=5的对象是重复的。 如何筛选此阵列并删除重复项? 我知道一些解决方案,在这些解决方案中,您可以使用以下内容对一个键进行过滤: 但是多个键呢? 根据评论中的要求,以下是预期结果:

  • 我有一个具有和属性的对象数组: 我想从所有对象中删除属性,并在控制台中打印,如

  • 我有这个数组的对象,我想删除最后一个对象。有人能让我知道这样做吗?

  • 问题内容: 我有一个看起来像这样的数组: 而且我需要删除重复项,以便保留类似以下内容: 我尝试安装underscore.js并使用._uniq,但这似乎仅在对象中出现一对时才起作用。我似乎无法使它跨多个键工作。 当我尝试类似的东西: 我只得到前三个唯一值(每个年级一个)。但是我需要所有年级和领域的唯一值。是否有一种简单的方法将两个键都馈给_.uniq函数? 最终,我需要一个列表,其中每个唯一的等级

  • 假设我有这样的对象数组: 如何从每个对象中删除时间和单词属性?我的输出应该是这样的:

  • 假设对象数组如下所示: 如果标签和颜色相同,则会出现重复条目。在这种情况下,id=1和id=5的对象是重复的。 根据注释中的请求,这里是期望的结果: