• 记录使用 TypeScript 对数组的一些处理


    1. 把数组[102, 104, 207, 213, 313, 414, 515, 516] 变成

    {'2': [102] ,4: [104], 7: [207],13: [213, 313],14: [414],15: [515],16: [516]\}的格式

    const groupBy = function (obj, iterator) {
        var result = {};
        for (var i = 0; i < obj.length; i++) {
            var value = obj[i];
            var index = i;
            var key = iterator(value, index);
            (result[key] || (result[key] = [])).push(value);
        }
        return result;
    };

    调用方式

    let arr = [102, 104, 207, 213, 313, 414, 515, 516];

    let ng = groupBy(arr, function (n) { 这个方法不会改变原数组
                let value = n % 100;
                return value;

    });

    2. 把上面得到的数据做一个排序,按照数组长度排序

     const sortByLen = function (obj) {
        var arr = [];
        for (var i in obj) {
            arr.push(obj[i]);
        }
        // console.warn("=====arr:",arr)
        arr.sort(function (left, right) {
            var a = left.length, b = right.length;
            return a - b;
        })
        // console.warn("===2222==arr:",arr)
        return arr;
    };

    调用方式

    let xxc2 = sortByLen(ng);

     得到//   =====xxc2: [ [ 411 ],
            // [ 109, 209 ],
            // [ 312, 312 ],
            // [ 516, 516 ],
            // [ 108, 108, 408 ],
            // [ 310, 410, 410 ],
            // [ 517, 517, 517 ],

    2. 把上面得到的数据做一个排序,按照数值排序

    const sortByVal = function (obj) {
        var arr = obj.concat();
        // console.warn("=====arr:",arr)
        arr.sort(function (left, right) {
            var a = left[0] % 100, b = right[0] % 100;
            if (a == 1) a = 14;
            if (b == 1) b = 14;
            return a - b;
        })
        // console.warn("===2222==arr:",arr)
        return arr;
    };

    调用方式

    let xxc2 = sortByVal(ng);

    得到//=====xxc2: [[102,102,102],[103,103,103],[105,105],[104,104]]

  • 相关阅读:
    聚类算法评价指标
    总结线程安全问题的原因和解决方案
    Win11一些问题以及解决方案
    AC自动机
    学点Selenium玩点新鲜~,让分布式测试有更多玩法
    第二十一章 数据库连接池,过滤器
    Hadoop3:大数据生态体系
    云上攻防-云原生篇&Docker安全&系统内核&版本漏洞&CDK自动利用&容器逃逸
    网络安全:使用各类编码混淆攻击
    Unity减少发布打包文件的体积——获取精灵图片的信息限制它的大小
  • 原文地址:https://blog.csdn.net/Lost_the_wind/article/details/125407688