方法一思路:Object 键值对去重;把数组的值存成 Object 的 key 值,比如 Object[value1] = true, 在判断另一个值的时候,如果 Object[value2]存在的话,就说明该值是重复的。
let arr = [1, 2, 3, 4, 5, 6, 7, 2, 4, 4, 5, 6, 3, 6]
function unique(arr) {
let newArr = []
let obj = {}
arr.forEach(item => !obj[item] ? (obj[item] = true, newArr.push(item)) : null);
return newArr
}
let res = unique(arr)
console.log(res) /* [1, 2, 3, 4, 5, 6, 7] */
思路二:利用indexof,新建一个数组,遍历要去重的数组,当值不在新数组的时候(indexOf 为 -1)就加入该新数组中;
var arr1 = []
const unique = arr => {
arr.forEach(item => arr = arr1.indexOf(item) == -1 ? arr1.push(item) : null);
return arr1
}
let res = unique(arr)
console.log(res); /* [1, 2, 3, 4, 5, 6, 7] */