javascript - 如何从 JavaScript 数组中删除重复对象

标签 javascript javascript-objects

这是我的代码

var studentsList = [
    {"Id": "101", "name": "siva"},
    {"Id": "101", "name": "siva"},
    {"Id": "102", "name": "hari"},
    {"Id": "103", "name": "rajesh"},
    {"Id": "103", "name": "rajesh"},
    {"Id": "104", "name": "ramesh"},
];

function arrUnique(arr) {
    var cleaned = [];
    studentsList.forEach(function(itm) {
        var unique = true;
        cleaned.forEach(function(itm2) {
            if (_.isEqual(itm, itm2)) unique = false;
        });
        if (unique)  cleaned.push(itm);
    });
    return cleaned;
}

var uniqueStandards = arrUnique(studentsList);

document.body.innerHTML = '<pre>' + JSON.stringify(uniqueStandards, null, 4) + '</pre>';

输出

[
{
    "Id": "101",
    "name": "siva"
},
{
    "Id": "102",
    "name": "hari"
},
{
    "Id": "103",
    "name": "rajesh"
},
{
    "Id": "104",
    "name": "ramesh"
}
]

在上面的代码中,我从 JavaScript 数组中获得了唯一的对象,但我想删除重复的对象。所以我想从数组中获取没有重复的对象,输出就像 [ { "编号": "102", “名称”:“哈里” }, { "编号": "104", “名称”:“拉梅什” } ]

最佳答案

检查这个

    var uniqueStandards = UniqueArraybyId(studentsList ,"id");

    function UniqueArraybyId(collection, keyname) {
              var output = [], 
                  keys = [];

              angular.forEach(collection, function(item) {
                  var key = item[keyname];
                  if(keys.indexOf(key) === -1) {
                      keys.push(key);
                      output.push(item);
                  }
              });
        return output;
   };

关于javascript - 如何从 JavaScript 数组中删除重复对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32432938/

相关文章:

javascript - 如何不断地将随机数据从服务器更新到Web客户端而无需手动刷新浏览器?

javascript - 奇怪的 Javascript 变量函数作用域与循环

javascript - JS 数组上的对象属性有什么用?是否符合标准?

javascript - 如何为对象实例生成唯一 ID?

javascript - 如何动态禁用和启用div

javascript - 更改 appium 设置以在模拟器中不具有应用程序的新状态

javascript - 如何让div float 在滚动条上?

javascript - 如何滑动切换()菜单部分?

javascript - JavaScript 中的 Object.assign(object1[i])

Javascript:无法检索具有功能的对象中的值