多维数组降维的几种方法

689 阅读1分钟

一、递归

// 数组扁平化是指将一个多维数组变为一维数组  如果数组的元素它还是一个数组就称多维数组
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]] 
// 定义一个新数组
let newArr = []
function getArr(array) {
  // 遍历数组
  array.forEach((item) => {
    // 如果我们遍历的这个元素它的值不是一个数组 我们就将这个元素放入到 新数组中
    // 否则就是数组 进行递归再次调用方法
    !Array.isArray(item) ? newArr.push(item) : getArr(item)
  })
}
getArr(arr)
console.log(newArr)

二、将多维数组转为字符串,再转化为一维数组

let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]]
console.log(arr.join(',').split(','));//这样转换后数组里的数字会变成字符串
//['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '14', '15', '16']

三、Array​.prototype​.flat()

// 数组扁平化是指将一个多维数组变为一维数组  如果数组的元素它还是一个数组就称多维数组
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]]
//使用 Infinity 作为深度,展开任意深度的嵌套数组
console.log(arr.flat(Infinity));