zoukankan      html  css  js  c++  java
  • 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])]
  • 相关阅读:
    热修复之类加载机制总结
    socket之tcp如何维护长连接
    sqlite之多线程处理
    android主线程ActivityThread-转载
    线程之ThreadLocal使用
    图片之压缩总结
    线程之交替执行的实例
    git的最常用命令总结
    sqlite之常见的语句
    activity之分析-3分钟看懂Activity启动流程
  • 原文地址:https://www.cnblogs.com/minjh/p/9212341.html
Copyright © 2011-2022 走看看