重温前端基础之-数组去重
var arr = [1,2,3,4,1,2,3,4,5,6,3,2]
/*
es6的set特性
*/
[...new Set(arr)]
/*思路:将数组转化为key:value的Object类型, key和value都是数组当前项 利用Object的key重复赋值会覆盖前面的值的特性*/ var obj = {}; for(item of arr){ obj[item] = item; } console.log(Object.values(obj)) for(key in {1:11,2:22,3:33}){ console.log(key) } /*思路:利用filter的第三个参数,总是返回indexOf匹配的第一个元素, 后面的重复元素与index位置不同,直接过滤掉,*/ var newArr = arr.filter((item,index,arr)=>{ return arr.indexOf(item)===index }) console.log(newArr) /* 新建空数组 */ var newArr1 = []; arr.forEach((item,index,arr)=>{ if (newArr1.indexOf(item)===-1){ newArr1.push(item); } }) console.log(newArr1) /* 使用arr的reduce方法,利用reduce的第二个参数,初始值 */ var newArr3 = arr.reduce((prev,next)=>{ if(prev.indexOf(next)===-1){ prev.push(next) } return prev; },[]); console.log(newArr3)