数组去重的三种方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重的三种方法相关的知识,希望对你有一定的参考价值。
arr = [1,1,2,3,2,1,2,3,4,5,1,2,3,4,5];
方法一:
1.先将数组排序 —> arr.sort();
2.循环数组,从第0项开始比较当前项与下一项的大小,如果两者相等,则删除数组中的当前项 —> arr.splice(开始位置,删除个数);
3.删除之后还要从删除的当前项[i]开始进行比较 —> i--;
var arr = [1,1,2,43,3,2,1,2,3,4,5,1,2,3,4,5];
arr.sort();
for(var i = 0; i < arr.length; i++){
if(arr[i] == arr[i+1]){
arr.splice(i,1);
i -- ;
}
}
方法二:
1.新建数组arr2, 循环当前数组arr
2.从arr的第0项开始,看arr2 中是否存在相同的数 —> 函数findInArr(n,arr)
3.如果没有相同的数,则把arr的当前项push到arr2中 —> arr.push();
function findInArr(n,arr){
for(var i = 0; i < arr.length; i++){
if(arr[i] == n) return true;
}
return false;
}
var arr = [1,1,2,4,3,2,1,2,3,4,5,1,2,3,4,5];
var arr2 = [];
for(var i = 0; i < arr.length; i++){
if(!findInArr(arr[i],arr2)){
arr2.push(arr[i]);
}
}
方法三:
1.定义一个空数组和一个空json;
2.循环数组,将arr中的每一项变成json的name值 ,并且将每一项赋值为‘a‘
json{‘1‘:‘a‘, ‘1‘:‘a‘, ‘2‘:‘a‘, ‘43‘:‘a‘, ‘3‘:‘a‘, ‘2‘:‘a‘, ‘1‘:‘a‘, ‘2‘:‘a‘, ‘3‘:‘a‘, ‘4‘:‘a‘, ‘5‘:‘a‘, ‘1‘:‘a‘, ‘2‘:‘a‘, ‘3‘:‘a‘, ‘4‘:‘a‘, ‘5‘:‘a‘ }
3.上一步利用了json替换的特性(json.a = 10),这样相同的项会合并
json{‘1‘:‘a‘, ‘2‘:‘a‘, ‘43‘:‘a‘, ‘3‘:‘a‘, ‘4‘:‘a‘, ‘5‘:‘a‘}
4。将json中每一项的name都push到arr2中
var arr = [1,1,2,43,3,2,1,2,3,4,5,1,2,3,4,5];
var arr2 =[];
var json ={};
for (var i = 0; i < arr.length; i++) {
json[‘arr[i]‘] = ‘a‘;
}
for(name in json){
arr2.push(name);
}
alert(arr2);
以上是关于数组去重的三种方法的主要内容,如果未能解决你的问题,请参考以下文章