- 使用 indexof() 方法
注:indexof() 方法对大小写敏感
- indexOf() 方法会返回元素在数组中第一次出现时的下标,然后做对比。
function unique(arr){
let newArr = [];
for(let i = 0; i < arr.length; i++){
//arr.indexOf(arr[i]) 会返回元素在arr中第一次出现的下标,所以如果等于i
//说明元素是第一次出现,然后push到newArr,不相等说明重复了就不管他
if(arr.indexOf(arr[i]) === i){
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique([2,45,66,23,'a',2,66,'a',54,23,2,1])) //[2, 45, 66, 23, "a", 54, 1]
复制代码
2.indexOf() 方法如果要检索的字符串值没有出现,则该方法返回 -1
function unique2(arr){
let newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])===-1){ //判断它里面有没有这个元素
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique2([4,5,2,3,3,4,6]));
复制代码
- ES6新增构造函数 Set
Set 中的元素只会出现一次,即 Set 中的元素是唯一的。具有天然去重功能
let arr = [4,1,2,2,3,2,1,4,4];
let set = new Set(arr);
console.log(set);//{4, 1, 2, 3}
console.log(...set);//4 1 2 3
console.log([...set]);//[4, 1, 2, 3]
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END