📜  Javascript 展平数组数组 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:42.754000             🧑  作者: Mango

Javascript 展平多维数组 - Javascript

在Javascript中,展平多维数组是一项非常基础的操作,同时也是一项非常有用的操作。本文将介绍如何用Javascript来展平一个多维数组。

什么是多维数组?

在Javascript中,数组可以是一维的,也可以是多维的。一维数组是一个有序的集合,其中每个元素都可以通过一个唯一的整数索引来访问。而多维数组则是具有更高维度的数组,其每个元素也可以是一个数组,这些数组又可以是多维的。

例如,在Javascript中,一个二维数组可以看作是一个由若干个数组组成的数组,其中每个子数组都具有相同的长度,例如:

const multiDimArray = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

而一个三维数组可以看作是一个由若干个二维数组组成的数组,例如:

const multiDimArray = [
  [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ],
  [
    [10, 11, 12],
    [13, 14, 15],
    [16, 17, 18]
  ]
];
展平多维数组

展平多维数组意味着将多维数组中的所有元素都提取出来,组成一个新的一维数组。例如,对于上面所示的二维数组,其展平后的结果应该是:

const flatArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];

而对于上面所示的三维数组,其展平后的结果应该是:

const flatArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];

下面是一个用Javascript展平多维数组的函数:

function flatten(multiDimArray) {
  const flatArray = [];
  for (let i = 0; i < multiDimArray.length; i++) {
    if (Array.isArray(multiDimArray[i])) {
      flatArray.push(...flatten(multiDimArray[i]));
    } else {
      flatArray.push(multiDimArray[i]);
    }
  }
  return flatArray;
}

该函数递归遍历多维数组中的每个元素,如果该元素是一个数组,则递归展平该数组,并将展平后的结果添加到新的一维数组中;否则直接将该元素添加到新的一维数组中。最终返回展平后的一维数组。

总结

Javascript中展平多维数组是一项非常基础但也是非常有用的操作。通过递归遍历多维数组中的每个元素,可以很容易地展平该数组并得到一个新的一维数组。以上就是用Javascript展平多维数组的一些介绍,希望对你有所帮助。