1. 根据判断新数组是否包含已存在的值来实现
const arr = [1, 2, 5, 3, 2, 1, 1]
const arrs = []
arr.map(s => {
if (arrs.indexOf(s) === -1) {
arrs.push(s) // [1,2,5,3]
}
})
console.log(arrs)
2. 利用数组includes方法。 逻辑同上
const arr = [1, 2, 5, 3, 2, 1, 1]
const arrs = []
arr.map(s => {
if (!arrs.includes(s)) {.
arrs.push(s) // [1,2,5,3]
}
})
console.log(arrs)
3. 通过判断索引位置。 如果相等说明是第一次找的位置。不想等说明找到了别的所有。就说明有重复的。因为indexOf只会返回第一次匹配到的值的索引
const arr = [1, 2, 5, 3, 2, 1, 1]
let newArr = arr.filter((item, index) => {
return arr.indexOf(item) === index
})
console.log(newArr)
4. 利用 ES6的set 方法
const arr = [1, 2, 5, 3, 2, 1, 1]
console.log(Array.from(new Set(arr)))