利用Set对象去重
set是es6新增的数据类型,里面是没有重复数据的,所以直接使用set就能得到一个去重后的数组
let array = [1, 1, 2, 3, 4]
let arr1 = Array.from(new Set(array))
// arr1 = [1, 2, 3, 4]
使用双重for循环,再利用数组的splice方法去重
let array = [1, 1, 2, 3, 4]
for (let i=0; i< array.length; i++) {
for (let y=i+1; y<array.length; y++) {
if (array[i] === array[y]) {
array.splice(y, 1)
y -= 1
}
}
}
利用includes去重(es6新增)
let array = [1, 1, 2, 3, 4]
let arr1 = []
for (let i=0; i<array.length; i++) {
if (!arr1.includes(array[i])) {
arr1.push(array[i])
}
}
// arr1 = [1, 2, 3, 4]
利用filter去重(es6新增)
let array = [1, 1, 2, 3, 4]
let arr1 = array.filter((row, key) => {
return array.indexOf(row, 0) === key
})
利用Object去重
大家都知道,object的键名是唯一的,把数组每一项的值作为obj的键名,再遍历obj就能得到一个没有重复值的数组,缺点是顺序会乱,因为obj没有顺序
let array = [1, 1, 2, 3, 4]
let obj = {}
for (let i=0; i<array.length; i++) {
obj[array[i]] = 1
}
let arr1 = []
for (let y in obj) {
arr1.push(y)
}
te特使