让前端飞

jquery数组去重与数组对象去重,你知道吗

2017-09-26  本文已影响0人  踏雪寻梅美梅

数组去重:以下方法创建一个新的数组存放结果,创建一个空对象来判断数组元素是否重复,每次for循环时,取出数组中一个元素与对象进行对比,如果这个元素不重复,则放到res中。

Array.prototype.arrayUnique = function(){

var res = [],obj = {};

for(var i=0,len=this.length;i<len;i++){

if(!obj[this[i]]){

res.push(this[i]);

obj[this[i]] = 1;

}

}

}

var arr = [111,231,111,231,444];

arr.arrayUnique();

数组对象去重:$.unique()此方法只能遍历基本的数据类型,遍历对象实现不了。所以需要用JSON.stringify()方法将对象转为字符串,然后调用此方法去重,最后再讲字符串转为对象。

function uniqueObjArray(arr){

var arrResult = [];

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

arr[i]=JSON.stringify(arr[i]);//将对象转化为字符串

arrResult.push(arr[i]);//字符串组成的数组

}

arr=[];//清空原来的数据

arrResult = $.unique(arrResult);//去掉重复的字符串

for(var j=0,len=arrResult.length;j<len;j++){

arrResult[i]=JSON.parse(arrResult[i]);//将字符串转化为对象

arr.push(arrResult[i]);

}

return arr;

}

上一篇 下一篇

猜你喜欢

热点阅读