第一种方法for
function qc(arr1){let arr=[];
for(let i=0;i}
arr1= [1,2,3,3,3,3,4]
qc(arr1)
第二种方法set
let array = [3,2,2,1,1]
// 展开array数组,返回的对象
let arr=[...new Set(array)]
或let arr = Array.from(new Set(array))
因为new Set 返回的是对象,所以要转成数组
第三种方法map
Map类似地图:地图上名字只有一个,给它设置index:1
map.set(v,1) 通过map.key()获取地图名字
Map是对象,偏向hash,不像对象要求key为“字符串”
Set是集合,类似数组,特点是无序
const arr = [3,2,2,1,2,3]
const deduplication = arr =>{// 实例化一个map对象let map = new Map() arr.forEach(v=>map.set(v,1))return [...map.keys()]
}
console.log(deduplication(arr));
遍历原始数组,把数组的每一个元素作为key存到Map,因为Map中不会出现相同的key值,所以最终得到的Map中的所有key值就是去重后的结果。
Map.keys()返回的是新的 Iterator对象,要转成数组则要经过[ …]