方法1
声明一个新数组newArr,使用forEach方法遍历arr,遍历的时候使用includes方法,判断newArr中是否有这个元素,如果没有就添加到这个数组中,实现数组去重的功能
let arr = [1, 2, 3, 3, 4, 4, 5, 4, 3, 2, 1]
let newArr = [] //声明一个新数组
arr.forEach(item => {
if (!newArr.includes(item)) {
newArr.push(item)
}
})
console.log(newArr) //[1, 2, 3, 4, 5]
方法2
方法2和方法1比较类似,先声明一个新数组newArr,使用forEach方法遍历arr,遍历的时候使用indexOf方法查找这个元素在新数组中的位置,如果返回的不是-1,则说明这个数组中存在这个元素,如果返回的是-1,则说明这个数组中不存在这个元素,然后添加这个元素到数组中,实现数组去重的功能
let arr = [1, 2, 3, 3, 4, 4, 5, 4, 3, 2, 1]
let newArr = [] //声明一新数组
arr.forEach(item => {
if (newArr.indexOf(item) == -1) {
newArr.push(item)
}
})
console.log(newArr) //[1, 2, 3, 4, 5]
方法3
因为Set它的元素是唯一的,然后使用Array.from()方法将Set数据结构转换成数组,也可以实现数组去重的功能
let arr = [1, 2, 3, 3, 4, 4, 5, 4, 3, 2, 1]
let newArr = Array.from(new Set(arr))
console.log(newArr) //[1, 2, 3, 4, 5]
方法4
使用filter方法的筛选判断功能,用indexOf检测这个元素在数组中第一次出现的索引值和本身的索引值作比较,如果不相同则说明这个元素不是第一次出现,如果相同则说明这个元素是第一次出现,并返回这个元素到新数组
let arr = [1, 2, 3, 3, 4, 4, 5, 4, 3, 2, 1]
let newArr = arr.filter((item, index) => {
return arr.indexOf(item) === index
})
console.log(newArr) // [1, 2, 3, 4, 5]