• js实现数组的排序和分组


    问题:
    data=[1,1,1,1,2,2,2,2,5,5,5,8,8,8,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4]
    怎么把值为1,2,3,4,5,8的数据分成6个数组存储形如
    [[1,1,1,1],[2,2,2,2],[3,3,3,3,3,3,3,3,3,3],[4,4,4,4,4,4,4],[5,5,5],[8,8,8]];
    解答:
    <script>
        var $arr=[1,1,1,1,2,33,44,12,3,4,4,4,4,4,6,6,6,6,6,6,6,6,6,7,7,7,7,7,123,34,12,2,2,133,33];
         //先进行排序
            $arr=$arr.sort(function(a,b){
                return a-b;
            })
            var hash={};
            var arr=[];
            var n=-1;
            for(var i=0;i<$arr.length;i++){
                if(!hash[$arr[i]]){
                    n++;
                    hash[$arr[i]]=true;
                    arr[n]=[];
                };
                arr[n].push($arr[i]);
            }
            console.log(arr);
    </script>

    可以利用原型做进一步的封装

    Array.prototype.sortGroup=function(){
                var arr=[],hash={},result=[],n=-1,len=this.length;
                arr=this.sort(function(a,b){
                    return a-b;
                })
                for(var i=0;i<len;i++){
                    if(!hash[arr[i]]){
                        n++;
                        hash[arr[i]]=true;
                        result[n]=[];
                    };
                    result[n].push(arr[i]);
                }
                return result;
    }
    var a=[1,2,3,3,3,3,3,3,11,23,23,23,11];
    console.log(a.sortGroup())  //
       结果:[[1],[2],[3,3,3,3,3,3],[11,11],[23,23,23]]
  • 相关阅读:
    [leetCode]101对称二叉树
    UESTC
    UESTC
    UESTC
    Java编程思想 学习笔记12
    Java编程思想 学习笔记11
    Java编程思想 学习笔记10
    Java编程思想 学习笔记9
    Java编程思想 学习笔记8
    Java编程思想 学习笔记7
  • 原文地址:https://www.cnblogs.com/wangshengli520/p/10782906.html
Copyright © 2020-2023  润新知