代码之家  ›  专栏  ›  技术社区  ›  Manpreet Oberoi

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

  •  0
  • Manpreet Oberoi  · 技术社区  · 9 年前

    我试图通过在对象内创建多个字段来从数组中找到重复的对象。

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

    我只想把名字和名字放在第三栏 link 在我的物体内

      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 回复  |  直到 9 年前
        1
  •  0
  •   Community Mohan Dere    8 年前

    这几乎是 Remove duplicate objects from an array using 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)