js对象数组去重

利用对象的键名无法重复的特点,必须知道至少一个对象数组中的对象的属性名,对象数组中必须有唯一的id,并且不重复

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Array.from方法可以将 Set 结构转为数组。

const items = new Set([1, 2, 3, 4, 5,1,2,3,4,5,]);

Array.from(items);//[1,2,3,4,5]

对象数组中的去重:

var arr = [{id: '1',name: '小红'},{id: '3',name: '小黄'},{id: '2',name: '小明'},{id: '2',name: '小明'},{id: '1',name: '小红'}];

new Set(arr.map(item=>item.id))//Set { '1', '3', '2' }

if(new Set(arr.map(item=>item.id)).size< arr.length){console.log('有重复')}else{console.log('没有重复')}//有重复的

//将获得的json转化为数组
Array.from(new Set(arr.map(item=>item.id)))/[ '1', '3', '2' ]

results matching ""

    No results matching ""