简单去重
function quchong(array){
var temp = []; //一个新的临时数组
for(var i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) == -1){
temp.push(array[i]);
}
}
return temp;
}
推荐:对象键值法去重(利用对象键值不重复的特点)
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;
}
但是当array里存储的是对象元素时,上面的方法就不能实现去重的功能。
即要对数组内对象元素使用JSON.stringify()方法转换成JSON字符串,下面是对第二种方法进行补充,使其可以对对象元素进行去重
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}类型进行处理
if (!obj[string1]) {
obj[string1] = 1;
result.push(arr[i]);
}
}
return result;
}
console.log(quchong(a));
console.log(quchong(ar));
console.log(quchong(arr));
结果图如下:
quchong.png
网友评论