JS数组去重方法总结:本文主要和大家分享JS数组去重方法总结,一共有七种方法,希望能帮助到大家。最简单的方法:1234567101112131415161718var arr=[2,8,5,0,5,2,6,7,2];function unique1(arr){ var hash=[]; for (var i = 0; i <
导读JS数组去重方法总结:本文主要和大家分享JS数组去重方法总结,一共有七种方法,希望能帮助到大家。最简单的方法:1234567101112131415161718var arr=[2,8,5,0,5,2,6,7,2];function unique1(arr){ var hash=[]; for (var i = 0; i <
本文主要和大家分享JS数组去重方法总结,一共有七种方法,希望能帮助到大家。
最简单的方法:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var arr=[2,8,5,0,5,2,6,7,2]; function unique1(arr){ var hash=[]; for (var i = 0; i < arr.length; i++) { if(hash.indexOf(arr[i])==-1){ hash.push(arr[i]); } } return hash;
}
方法一:
双层循环,外层循环元素,内层循环时比较值
如果有相同的值则跳过,不相同则push进数组
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Array.prototype.distinct = function(){
vararr = this,
result = [],
i,
j,
len = arr.length;
for(i = 0; i < len; i++){
for(j = i + 1; j < len; j++){
if(arr[i] === arr[j]){
j = ++i;
}
}
result.push(arr[i]);
}
returnresult;
}
vararra = [1,2,3,4,4,1,1,2,1,1,1];
arra.distinct(); //返回[3,4,2,1]
方法二:利用splice直接在原数组进行操作
双层循环,外层循环元素,内层循环时比较值
值相同时,则删去这个值
注意点:删除元素之后,需要将数组的长度也减1.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Array.prototype.distinct = function(){
vararr = this,
i,
j,
len = arr.length;
for(i = 0; i < len; i++){
for(j = i + 1; j < len; j++){
if(arr[i] == arr[j]){
arr.splice(j,1);
len--;
j--;
JS数组去重方法总结
JS数组去重方法总结:本文主要和大家分享JS数组去重方法总结,一共有七种方法,希望能帮助到大家。最简单的方法:1234567101112131415161718var arr=[2,8,5,0,5,2,6,7,2];function unique1(arr){ var hash=[]; for (var i = 0; i <