首页 > 解决方案 > 逐列二维数组解构

问题描述

有没有一种巧妙的方法来解构二维数组以将变量分配给每一列?

例如:

const matrix = [
  [1,2,3,4,5],
  [1,2,3,4,5],
  [1,2,3,4,5]
]

const [ones, twos, threes, fours, fives] = foo(matrix);

console.log(ones);
// [1, 1, 1]
console.log(twos);
// [2, 2, 2]
etc.

干杯,

标签: javascript

解决方案


您需要先转置矩阵。

const
    transpose = array => array.reduce((r, a) => a.map((v, i) => [...(r[i] || []), v]), []),
    matrix = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]],
    [ones, twos, threes, fours, fives] = transpose(matrix);

console.log(ones);
console.log(twos);
console.log(threes);
console.log(fours);
console.log(fives);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读