当前位置:Gxlcms > JavaScript > JS数组去重方法总结

JS数组去重方法总结

时间:2021-07-01 10:21:17 帮助过:6人阅读

本文主要和大家分享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(){

var arr = 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]);

}

return result;

}

var arra = [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 (){

var arr = 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--;

人气教程排行