数组扁平化将多维数组降维成一维数组

35次阅读

共计 417 个字符,预计需要花费 2 分钟才能阅读完成。

将这个问题进行转化 ===> 将 N 维数组降到 (N-1) 维

思路:构造一个目标数组,初始为空。遍历 N 维数组中的每一项。
如果当前项不是数组而是单个元素,那么将它保存到目标数组中。
如果当前项是数组,对当前数组元素进行降维。
这是一个典型的递归过程。

function flattenArray(list, target) {
  const len = list.length;
  for(let i = 0; i < len; i++) {if (list[i] instanceof Array) {flattenArray(list[i], target);
    } else {target && target.push(list[i]);
    }
  }
}

let target = new Array();
const list = [1, [3, [4, [6, 7]], 5], 2];
flattenArray(list, target);
console.log("list", target);

结果是:list [1, 3, 4, 6, 7, 5, 2]

正文完
 0