js對象數組操作之一:對象數組中對象去重的方法總結
阿新 • • 發佈:2018-09-12
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對象數組操作之一:對象數組中對象去重的方法總結