数组去重
双层for循环嵌套数组去重(splice)
双层for循环嵌套,删除相同的数组元素(注意删除数组元素之后结构发生了改变,需要第二层for循环里面的 j--)
function shuzu(arr) {
for(let i = 0; i< arr.length; i++) {
for(let j = i+1; j<arr.length; j++) {
if(arr[i] === arr[j]) {
arr.splice(j,1) // 删除一个数组元素,数组的结构发生了变化
j-- // 后退一步
}
}
}
return arr
}
console.log(shuzu([1, 2, 3, 5, 5, 6 , 7, 5]))
// 输出结果:1 2 3 5 6 7
使用 es6 set 方法去重 […new Set(arr)]
let arr = [1,2,2,3,4,3,6,7,6]
let unique = (arr) => [...new Set(arr)]
unique(arr)
(6) [1, 2, 3, 4, 6, 7]
利用 filter去重
let arr = [1,2,3,4,3,2,3,4,6,7,6];
let unique = (arr) => {
return arr.filter((item,index) => {
return arr.indexOf(item) === index
})
}
unique(arr)
(6) [1, 2, 3, 4, 6, 7]