zoukankan      html  css  js  c++  java
  • JS数组扁平化(flat)

    需求:多维数组=>一维数组

    let ary = [1, [2, [3, [4, 5]]], 6];
    let str = JSON.stringify(ary);

    第0种处理:直接的调用

    arr_flat = arr.flat(Infinity);

    第一种处理

    ary = str.replace(/([]))/g, '').split(',');

    第二种处理

    str = str.replace(/([]))/g, '');
    str = '[' + str + ']';
    ary = JSON.parse(str);

    第三种处理:递归处理

    let result = [];
    let fn = function(ary) {
    for(let i = 0; i < ary.length; i++) }{
    let item = ary[i];
    if (Array.isArray(ary[i])){
    fn(item);
    } else {
    result.push(item);
    }
    }
    }

    第四种处理:用 reduce 实现数组的 flat 方法

    function flatten(ary) {
    return ary.reduce((pre, cur) => {
    return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
    })
    }
    let ary = [1, 2, [3, 4], [5, [6, 7]]]
    console.log(ary.MyFlat(Infinity))

    第五种处理:扩展运算符

    while (ary.some(Array.isArray)) {
    ary = [].concat(...ary);
    }
  • 相关阅读:
    UML画图
    UML笔记
    电脑启动顺序
    评教有感
    部署图
    活动图
    给八期授课之主板电池的思考
    给八期授课之人员分配的思考
    构件图
    cocos2dx获得机器语言
  • 原文地址:https://www.cnblogs.com/web-chuanfa/p/11681911.html
Copyright © 2011-2022 走看看