JavaScript-使用objec数组去重

原理:js对象的特性 : 在js对象中 key 是永远不会重复的

  • 1 把数组转成一个js的对象
  • 2 把数组中的值,变成js对象当中的key
  • 3 把这个对象 再还原成数组
// 把数组转成对象
function toObject(arr){
    var obj = {}; // 私有的对象
    var j;
    for(var i=0,j=arr.length;i<j;i++){
        obj[arr[i]] = true;
    }
    return obj;
}

// 把这个对象转成数组
function keys(obj){
    var arr = []; // 私有对象
    for(var attr in obj){
        if(obj.hasOwnProperty(attr)){
            arr.push(attr);
        }
    }
    return arr;
}

// 综合的方法,去掉数组中的重复项
function uniq(newArr){
    return keys(toObject(newArr));
}

猜你喜欢

转载自blog.csdn.net/hundan_520520/article/details/80916136
今日推荐