• 记录使用 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]]

  • 相关阅读:
    压测的问题排查
    深度学习——LSTM基础
    web安全学习笔记【12】——信息打点(2)
    Swift类型属性底层研究
    Windows电脑中护眼(夜间)模式的开启异常
    实例化Servlet类[com.gowork.servlet.helloservlet]异常【BUG已解决】
    JS 的 substr() 方法
    一次JAVA频繁写大文件的记录
    putty连接虚拟机报错Access defined
    CTyunOS安装MySQL8.0
  • 原文地址:https://blog.csdn.net/Lost_the_wind/article/details/125407688