数组去重是指当数组中出现重复的元素的时候,通过一定的方式,将重复的元素去掉。
1. 利用数组遍历去重
// 1. 循环数组
function fn(arr) {
var newArr = []
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
return newArr
}
var arr = [1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 8, 8]
console.log(fn(arr))
2. 利用键值对去重
// 2. 对象的键值对 key
function fn(arr) {
var obj = {},
value,
type,
newArr = []
for (let i = 0; i < arr.length; i++) {
value = arr[i]
// 判断元素的类型
type = typeof arr[i]
if (!obj[value]) {
obj[value] = [type]
newArr.push(value)
} else if (obj[value].indexOf(type) === -1) {
obj[value].push(type)
newArr.push(value)
}
}
return newArr
}
var arr = [1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 8, 8, '8']
console.log(fn(arr))
3. 使用Set
数据结构去重
// 3. Set数据结构: 自带去重
function fn(arr) {
return Array.from(new Set(arr))
}
var arr = [1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 8, 8, '8']
console.log(fn(arr))