簡單去重
function quchong(array){
var temp = []; //一個新的臨時數(shù)組
for(var i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) == -1){
temp.push(array[i]);
}
}
return temp;
}
推薦:對象鍵值法去重(利用對象鍵值不重復(fù)的特點)
function quchong (array) {
var temp = [];
var obj = {};
for(var i = 0; i < array.length; i++) {
if(!obj[array[i]]) {
obj[array[i]] = 1;
temp.push(array[i]);
}
}
return temp;
}
但是當(dāng)array里存儲的是對象元素時胰伍,上面的方法就不能實現(xiàn)去重的功能兵扬。
即要對數(shù)組內(nèi)對象元素使用JSON.stringify()方法轉(zhuǎn)換成JSON字符串,下面是對第二種方法進(jìn)行補充乞巧,使其可以對對象元素進(jìn)行去重
var a = [1, 2, 3, 1, 2, 5];
var ar = [{a: 1}, {b: 1}, {a: 1, b: 1}, {b: 1, a: 1},{a:1}];
var arr = [[1, 2, 3, 4], [1, 2], [1, 3, 2, 4], [2, 1]];
function quchong(arr) {
var obj = {};
var result = [];
for (var i = 0; i < arr.length; i++) {
var s = JSON.stringify(arr[i]);
var string1 = s.split('').sort().join('');//對于{a:1,b:1}和{b:1,a:1}類型進(jìn)行處理
if (!obj[string1]) {
obj[string1] = 1;
result.push(arr[i]);
}
}
return result;
}
console.log(quchong(a));
console.log(quchong(ar));
console.log(quchong(arr));
結(jié)果圖如下: