1、es6 new Set
var arr = [1, 2, 2, 9, 3, 4, 2, 3, 4, 6, 7]
console.log(Array.from(new Set(arr)))
console.log([...new Set(arr)])
2、indexOf
var arr = [1, 2, 2, 9, 3, 4, 2, 3, 4, 6, 7]
var result = []
arr.forEach(i => {
if (result.indexOf(i) == -1) {
result.push(i)
}
})
3、filter + indexOf
var arr = [1, 2, 2, 9, 3, 4, 2, 3, 4, 6, 7]
arr = arr.filter((item, index) => {
return arr.indexOf(item) === index
})
4、reduce + includes
var arr = [1, 2, 2, 9, 3, 4, 2, 3, 4, 6, 7]
arr = arr.reduce((pre, item) => {
return pre.includes(item) ? pre : [...pre, item]
}, [])
5、利用对象的key唯一去做
var arr = [1, 2, 2, 9, 3, 4, 2, 3, 4, 6, 7]
var obj = {}
arr.forEach(i => {
obj[i] = 'sss'
})
console.log(Object.keys(obj).map(i => Number(i)))
6、排序 然后循环去判断
var arr = [1, 2, 2, 9, 3, 4, 2, 3, 4, 6, 7]
temp = arr.sort(),
result = []
for (let i = 0;i < temp.length;i++) {
if (temp[i] !== temp[i + 1]) {
result.push(temp[i])
}
}
注意:以上所有用indexOf去判断的都可以用includesOf去代替