1. 程式人生 > >js對象數組操作之一:對象數組中對象去重的方法總結

js對象數組操作之一:對象數組中對象去重的方法總結

jquer pre als ext code arr 行操作 原生js ...

在日常開發業務中,經常會有一個數組由多個對象構成,需要對這種數據結構進行操作,如下:

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對象數組操作之一:對象數組中對象去重的方法總結