方法一:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中
var arr =[1,2,1,4,3,2,4,4,3,6,7,8,4,9,5]
function unique(){
var arrNew=[arr[0]]
for(var i=0;i<arr.length;i++){
var flag = false
for(var j=0;j<arrNew.length;j++){
if(arr[i]===arrNew[j]){
flag = true
break
}
}
if(!flag) {
arrNew.push(arr[i])
}
}
return arrNew
}
console.log(unique(arr));
方法二:index of (这里有个弊端 那就是 NAN indexof 是全等=== 所以NAN 不能去重)
var arr =[1,2,1,4,3,2,4,4,3,6,7,8,4,9,5]
function unique(arr) {
var newArr=[]
for (let i = 0; i < arr.length; i++) {
if(newArr.indexOf(arr[i])===-1){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr));
方法三: includes
function unique(arr) {
var newArr=[]
for (let i = 0; i < arr.length; i++) {
if(!newArr.includes(arr[i])){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique([1,2,1,4,3,2,4,4,3,6,7,8,4,9,5]));
方法四:includes 和 filter
function unique(arr) {
var newArr=[]
newArr=arr.filter(item=>{
return newArr.includes(item) ? '':newArr.push(item)
})
return newArr
}
console.log(unique([1,2,1,4,3,2,4,4,3,6,7,8,4,9,5]));
</script>
方法五:es6 中的 [...new Set(arr)] (最喜欢这个)
var arr =[1,2,1,4,3,2,4,4,3,6,7,8,4,9,5]
console.log([...new Set(arr)]);
本文详细介绍了五种使用JavaScript实现数组去重的方法,包括传统for循环对比、indexOf、includes、filter结合includes以及利用ES6 Set特性。每种方法都有其适用场景和优缺点,适合不同需求的开发者。

1万+

被折叠的 条评论
为什么被折叠?



