美文网首页让前端飞
jquery数组去重与数组对象去重,你知道吗

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

作者: 踏雪寻梅美梅 | 来源:发表于2017-09-26 13:22 被阅读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;

    }

    相关文章

      网友评论

        本文标题:jquery数组去重与数组对象去重,你知道吗

        本文链接:https://www.haomeiwen.com/subject/acjsextx.html