JS 数组去重

/* 根据数组中的字段去重 */
var arr = [
    {"id":"1001","name":"值1","value":"123"},
    {"id":"1001","name":"值1","value":"456"},
    {"id":"1002","name":"值2","value":"789"},
    {"id":"1002","name":"值2","value":"753"},
    {"id":"1002","name":"值2","value":"951"},
    {"id":"1003","name":"值3","value":"852"},
    {"id":"1003","name":"值3","value":"654"}
];

 function arrayUnique(arr, id) {
     var hash = {};
     return arr.reduce(function (item, next) {
            hash[next[id]] ? '' : hash[next[id]] = true && item.push(next);
                return item;
            }, []);
     }

console.log(arrayUnique(arr,'id'))
 

 

/* 数组去重方法一 */
var removeDuplicates = function(nums) {
    nums = nums.sort();
    function loop(nums){
        for(var i=1;i<=nums.length;i++){
            if(nums[i] === nums[i-1]){
                nums.splice(i,1);
                loop(nums);
                return;
            }
        }
    }
    loop(nums);
    return nums;
};

console.log(removeDuplicates([1,1,2,2,3]));
console.log(removeDuplicates([0,0,1,1,1,2,2,3,3,4]));
/* 数组去重方法二 */ var removeDuplicates1 = function(nums) { var set = new Set(); for(var i =0;i<nums.length;i++){ set.add(nums[i]); } return [...set]; } console.log(removeDuplicates1([1,1,2,2,3])); console.log(removeDuplicates1([0,0,1,1,1,2,2,3,3,4]));

/* 数组去重方法三 */
[0,0,1,1,1,2,2,3,3,4].reduce((curr, next) => curr.indexOf(next) === -1 ? curr.concat(next) : curr, []);


/*数组去重方法四*/
[...new Set([1,2,2,3,3])]

 

posted @ 2018-06-22 10:50  土豆儿哥  阅读(272)  评论(0编辑  收藏  举报