1. 程式人生 > 實用技巧 >最簡單的去重方式

最簡單的去重方式

1、es6的new Set()方式

let array=[0,3,4,5,3,4,7,8,2,2,5,4,6,7,8,0,2,0,90];
[...new Set(array)]

2、es5的Array filter()

[1,3,4,5,1,2,3,3,4,8,90,3,0,5,4,0].filter(function(elem,index,Array){
   return index === Array.indexOf(elem);
})

擴充套件:

new Set()的基礎用法(ES6)

1、什麼是Set()

似於陣列,但它的一大特性就是所有元素都是唯一的,沒有重複。
我們可以利用這一唯一特性進行陣列的去重工作。

2、常用方法

2.1 新增元素 add
let list=new Set();
list.add(1)

2.2 刪除元素 delete

let list=new Set([1,20,30,40])
list.delete(30)      //刪除值為30的元素,這裡的30並非下標

2.3 判斷某元素是否存在 has

let list=new Set([1,2,3,4])
list.has(2)//true

2.4 清除所有元素 clear

let list=new Set([1,2,3,4])
list.clear()

2.5 遍歷 keys()

let list2=new Set(['a','b','c'])
for(let key of list2.keys()){
   console.log(key)//a,b,c
}

2.6 遍歷 values()

let list=new Set(['a','b','c'])
for(let value of list.values()){
console.log(value)//a,b,c
}

2.7 遍歷 forEach()

let list=new Set(['4','5','hello'])
list.forEach(function(item){
  console.log(item)
})

2.8 陣列轉Set (用於陣列去重)

let set2 = new Set([4,5,6])

2.9 Set轉陣列

let set4 = new Set([4, 5, 6])
//方法一   es6的...解構
let arr1 =  [...set4];
//方法二  Array.from()解析類陣列為陣列
let arr2 = Array.from(set4)