解构数组数组以访问单个元素
Destructuring array of arrays to get access to individual elements
所以,我正在使用这样的数组:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
对于我的示例问题,我只能使用嵌套循环访问各个元素,
我希望能够(如果可能的话)使用单个循环,使用解构来访问每个子数组的各个元素
示例(我知道这有点用,但不是预期的那样):我需要访问每个元素。而且它需要灵活。以防我使用不同大小的数组。 (3 x 3 或 4 x 4 等)编写 el1、el2、el3 对于其他大小的数组数组
不灵活
arrOfArrs.forEach(([el1, el2, el3]) => console.log(el1));
上面将控制台记录每个子数组的每个第一个 el:示例 el1 将记录:1、4、7。我想获得单个元素 1,然后是 2、3、4 等。并且能够遍历这一切。这可能吗?
非常感谢您的帮助!
您可以映射您的父数组并将它们中的每一个分散到一个新的容器数组中,如下所示:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const destructuredArray = []
arrOfArrs.map(array => destructuredArray.push(...array))
console.log(destructuredArray)
这是您的目标吗?
要在 单循环 中真正访问每个项目,您首先要 展平 数组,如下所示:
在下面的代码片段中,我直接迭代展平的数组结果而不将其存储在新变量中(基本上是 'one-liner')。
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
[].concat.apply([], arrOfArrs).forEach(one => {
console.log(one)
});
您可以只使用 Array#flat()
代码:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
const destructuredArray = arrOfArrs.flat()
console.log(destructuredArray)
所以,我正在使用这样的数组:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
对于我的示例问题,我只能使用嵌套循环访问各个元素, 我希望能够(如果可能的话)使用单个循环,使用解构来访问每个子数组的各个元素
示例(我知道这有点用,但不是预期的那样):我需要访问每个元素。而且它需要灵活。以防我使用不同大小的数组。 (3 x 3 或 4 x 4 等)编写 el1、el2、el3 对于其他大小的数组数组
不灵活 arrOfArrs.forEach(([el1, el2, el3]) => console.log(el1));
上面将控制台记录每个子数组的每个第一个 el:示例 el1 将记录:1、4、7。我想获得单个元素 1,然后是 2、3、4 等。并且能够遍历这一切。这可能吗?
非常感谢您的帮助!
您可以映射您的父数组并将它们中的每一个分散到一个新的容器数组中,如下所示:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const destructuredArray = []
arrOfArrs.map(array => destructuredArray.push(...array))
console.log(destructuredArray)
这是您的目标吗?
要在 单循环 中真正访问每个项目,您首先要 展平 数组,如下所示:
在下面的代码片段中,我直接迭代展平的数组结果而不将其存储在新变量中(基本上是 'one-liner')。
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
[].concat.apply([], arrOfArrs).forEach(one => {
console.log(one)
});
您可以只使用 Array#flat()
代码:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
const destructuredArray = arrOfArrs.flat()
console.log(destructuredArray)