JS去除数组对象相同的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS去除数组对象相同的数据相关的知识,希望对你有一定的参考价值。
参考技术A // 方法1:利用对象访问属性的方法,判断对象中是否存在key// 方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
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去除数组对象相同的数据的主要内容,如果未能解决你的问题,请参考以下文章