簡(jiǎn)單去重
function quchong(array){
var temp = []; //一個(gè)新的臨時(shí)數(shù)組
for(var i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) == -1){
temp.push(array[i]);
}
}
return temp;
}
推薦:對(duì)象鍵值法去重(利用對(duì)象鍵值不重復(fù)的特點(diǎn))
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里存儲(chǔ)的是對(duì)象元素時(shí),上面的方法就不能實(shí)現(xiàn)去重的功能。
即要對(duì)數(shù)組內(nèi)對(duì)象元素使用JSON.stringify()方法轉(zhuǎn)換成JSON字符串,下面是對(duì)第二種方法進(jìn)行補(bǔ)充,使其可以對(duì)對(duì)象元素進(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('');//對(duì)于{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é)果圖如下:

quchong.png