数组去重的三种最简单实用的方法
一、set 方法
使用ES6中的set是最简单的去重方法
let arr1 = [1, 2, 3, 3, 2, 1]
function obj(arr){undefined
return Array.from(new Set(arr))
}
console.log(obj(arr1));
二、利用Map数据结构去重
创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果。
let arr = [{name:"张三"},{name:"张三"},{name:"王五"},{name:"王五"}];
function unique(arr, key) {
const map = new Map()
return arr.filter((item) => !map.has(item[key] + '') && map.set(item[key] + '', 1))
三、forEach+indexOf
定义一个空数组,通过forEach循环,indexOf判断值是否是-1,如果是push到新的数组中
let arr2 = [];
arr1.forEach( (value, index)=> {
if (arr2.indexOf(arr1[index]) == -1){
arr2.push(arr1[index])
}
});