js 数组去重

假设有这样一个数组,其中 3 、1 、7都不止出现一次

let arr = [1,2,1,3,5,5]
想得到多次出现的元素变为出现一次,即去除重复的元素
arr = [1,2,3,5]

1. 利用 ES6的 Set 数据结构

使用from() 函数将类数组对象转化成数组
Array.from(new Set(arr))

利用扩展运算符将类数组对象转化成数组
[...new Set(arr)]

2. filter() 方法过滤掉重复元素实现的去重效果

 arr.filter((value, index) => {
   return arr.indexOf(value) === index
 })

3. 利用es6 数据结构 Map 来判断元素是否重复

let map = new Map()
let new_arr = [] // 存放新数组
for(let i in arr) { 
    let item = arr[i]  
    if(!map.has(item)) {
        map.set(item, true)
        new_arr.push(item)
    }
}

4. 利用 indexOf() 方法判断元素的重复性

let new_arr = []
for(let i in arr) {
 let item = arr[i]
 if(new_arr.indexOf(item) === -1) {
   new_arr.push(item)
 }
}

5. includes() 方法来判断元素的重复性

 let new_arr = []
 for(let i in arr) {
   let item = arr[i]
   if(!new_arr.includes(item)) {
     new_arr.push(item)
   }
 }

你可能感兴趣的:(javascript)