数组去重方法集合
常用方法如下:
function uniqueArr(arr) { return [...new Set(arr)] } 复制代码
这里我们创建一个实例数组来做测试如下:
let arr = [1,1,"1","1",true,true,"true",{},{},"{}",null,null,undefined,undefined] 复制代码
function one
let uniqueOne = Array.from(new Set(arr)) console.log(uniqueOne) 复制代码
function two
let uniqueTwo = arr => { let map = new Map(); //或者用空对象 let obj = {} 利用对象属性不能重复得特性 let brr = [] arr.forEach( item => { if(!map.has(item)) { //如果是对象得话就判断 !obj[item] map.set(item,true) //如果是对象得话就obj[item] =true 其他一样 brr.push(item) } }) return brr } console.log(uniqueTwo(arr)) 复制代码
function three
let uniqueThree = arr => { let brr = [] arr.forEach(item => { // 使用indexOf 返回数组是否包含某个值 没有就返回-1 有就返回下标 if(brr.indexOf(item) === -1) brr.push(item) // 或者使用includes 返回数组是否包含某个值 没有就返回false 有就返回true if(!brr.includes(item)) brr.push(item) }) return brr } console.log(uniqueThree(arr)) 复制代码
function four
let uniqueFour = arr => { // 使用 filter 返回符合条件的集合 let brr = arr.filter((item,index) => { return arr.indexOf(item) === index }) return brr } console.log(uniqueFour(arr))
作者:villay
链接:https://juejin.cn/post/7028088829487628324