美文网首页
数组扁平化

数组扁平化

作者: zhulichao | 来源:发表于2020-07-24 09:05 被阅读0次
    // 方式一 递归
    function flat(array, newarray) {
        for (var i = 0; i < array.length; i++) {
            if(typeof array[i] == "number"){
                //类型为number, 则放入到新数组中
                newarray.push(array[i]);
            } else {
                //否则, 继续分解
                flat(array[i], newarray);
            }       
        }      
    }
    var array = [1,[3,[4],[5,[6,7]],8],[9,[10]]];
    var newarray = [];
    flat(array, newarray);
    
    // 方式二 toString(),但是条件受限 
    var array = [1,[3,[4],[5,[6,7]],8],[9,[10]]];
    var newarray = array.toString().split(',');
    

    // 方式三 使用es6的generator

    var array = [1,[3,[4],[5,[6,7]],8],[9,[10]]];
    function* iterTree(tree) {
      if (Array.isArray(tree)) {
        for(let i=0; i < tree.length; i++) {
          yield* iterTree(tree[i]);
        }
      } else {
        yield tree;
      }
    }
    for(let x of iterTree(array)) {
      console.log(x);
    }
    

    相关文章

      网友评论

          本文标题:数组扁平化

          本文链接:https://www.haomeiwen.com/subject/vwfjhktx.html