码迷,mamicode.com
首页 > 编程语言 > 详细

js对象数组操作之一:对象数组中对象去重的方法总结

时间:2018-09-12 20:24:33      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:之一   ...   ++   方法   对象   ack   microsoft   ons   str   

在日常开发业务中,经常会有一个数组由多个对象构成,需要对这种数据结构进行操作,如下:

const arr = [ { name:‘tom‘, age:15 }, { name:‘jack‘, age:18 }, { name:‘tom‘, age:10 }, ...]

今天总结了一下

先说这种数据结构的去重方法,对于数组中的多个对象去除重复,需要设置布尔值来进行。

一、jquery方法

var oldArr = [ 
  { name:‘tom‘, age:15 },
  { name:‘jack‘, age:18 },
  { name:‘tom‘, age:10 }
];
var allArr = [];//新数组
$.each(oldArr,function(i,v){
    var flag = true;
    if(allArr.length > 0){
        $.each(allArr,function(n,m){
            if(allArr[n].name == oldArr[i].name){
          flag = false;
        }; }); };
if(flag){ allArr.push(oldArr[i]); }; });
二、原生js方法
for(var i=0;i<oldArr.length;i++){
  var flag = true;
  for(var j=0;j<allArr.length;j++){
    if(oldArr[i].name == allArr[j].name){
      flag = false;
    };
  }; 
  if(flag){
    allArr.push(oldArr[i]);
  };
};

三、reduce方法

var hash = {}; 
arr = arr.reduce(function(item, next) { 
hash[next.name] ? ‘‘ : hash[next.name] = true && item.push(next); 
return item 
}, []) 

四、ES6的Set

js对象数组操作之一:对象数组中对象去重的方法总结

标签:之一   ...   ++   方法   对象   ack   microsoft   ons   str   

原文地址:https://www.cnblogs.com/toggle/p/9636299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!