两个数组去重的JS代码

Javascript教程 2025-07-30

第一种:

复制代码代码如下:

function unique (arr){

var obj = {},newArr = [];

for(var i = 0;i < arr.length;i++){

var value = arr[i];

if(!obj[value]){

obj[value] = 1;

newArr.push(value);

}

}

return newArr;

}

这个方法把数组的值存入对象,所以,在数组存在对象队员的时候,运行失败(对象作为对象的键会被转化为字符串)。

第二种方法:

复制代码代码如下:

function unique (arr){

for(var i = 0;i < arr.length;i++){

for(var j = i+1;j < arr.length;j++){

if(arr[i] === arr[j]){

arr.splice(j,1);

j--}

}

}

return arr;

}

即使传入的数组包含对象,这个方法也支持,注意‘===',但是使用了嵌套循环,性能会劣于第一种方法。