1.利用Es6 Set()
var arr = [1,2,2,3,4] // 需要去重的数组 var set = new Set(arr) // {1,2,3,4} var newArr = Array.from(set) // 再把set转变成array console.log(newArr) // [1,2,3,4]
2.利用indexOf
const unique= arr => { const res = []; for (let i = 0; i < arr.length; i++) { if (res.indexOf(arr[i]) === -1) res.push(arr[i]); } return res; }
3.利用includes
const unique = arr => { const res = []; for (let i = 0; i < arr.length; i++) { if (!res.includes(arr[i])) res.push(arr[i]); } return res; }
4.利用filter
const unique = arr => { return arr.filter((item, index) => { return arr.indexOf(item) === index; }); }
5.利用Es6 Map()
const unique = arr => { const map = new Map(); const res = []; for (let i = 0; i < arr.length; i++) { if (!map.has(arr[i])) { map.set(arr[i], true) res.push(arr[i]); } } return res; }
6.Object 键值对去重
把数组的值存成 Object 的 key 值,比如 Object[value1] = true,在判断另一个值的时候,如果 Object[value2]存在的话,就说明该值是重复的。