zoukankan      html  css  js  c++  java
  • 数组扁平化

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

    let ary = [1, [2, [3, [4, 5]]], 6];

    let str = JSON.stringify(ary);

    1.第0种处理:
    直接的调用arr_flat = arr.flat(Infinity);
    
    2. 第一种处理
    ary = str.replace(/([]))/g, '').split(',');
    
    
    3.第二种处理
    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);
    }
    
  • 相关阅读:
    js交互数据
    js字符串操作
    js数组操作
    hasattr ,setarrt, getattr属性
    装饰器
    redis数据库安装
    ubuntu中mysql数据库安装与删除
    装换器
    jinjia2
    Laravel框架与ThinkPHP框架的不同
  • 原文地址:https://www.cnblogs.com/hff-syt/p/12422611.html
Copyright © 2011-2022 走看看