第一種:
複製代碼代碼如下:
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;
}
即使傳入的數組包含對象,這個方法也支持,注意'===',但是使用了嵌套循環,性能會劣於第一種方法。