JS 数组去重的四种方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 数组去重的四种方法相关的知识,希望对你有一定的参考价值。
1、通过遍历原数组和新数组是否重复。new一个新数组存放已经遍历过的、唯一的元素。
function uniqueArr(list){
var newArr= [list[0]];
for(var i=1;i<list.length;i++){
var isRepeat = false;
for(var j=0;j<newArr.length;j++){
if(list[i] == newArr[j]){
isRepeat= true;
break;
}
}
if(!isRepeat){
newArr.push(list[i]);
}
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
2、通过先排序,再与相邻的元素进行比较去重(排序之后相同的元素会相邻)
function uniqueArr(list){
list.sort();//对数组进行排序
var newArr= [];
for(var i=1;i<list.length;i++){
if(list[i]!=list[i+1]) newArr.push(list[i]);
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
3、新建一个对象进行存放,再遍历数组,判断对象是否存在该值(obj[i])
function uniqueArr(list){
var obj= {},newArr=[list[0]];
obj[list[0]]=true;
for(var i=1;i<list.length;i++){
if(!obj[list[i]]){
obj[list[i]]=true;
newArr.push(list[i]);
}
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
4、通过indexOf进行判断(新建一个数据存放唯一的元素,遍历原数组判断(newArr.indexOf(oldArr[i])==-1))
function uniqueArr(list){
var newArr=[list[0]];
for(var i=1;i<list.length;i++){
if(newArr.indexOf(list[i])==-1){
newArr.push(list[i]);
}
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
以上是关于JS 数组去重的四种方法的主要内容,如果未能解决你的问题,请参考以下文章