javascript - 逐列二维数组解构
问题描述
有没有一种巧妙的方法来解构二维数组以将变量分配给每一列?
例如:
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.
干杯,
磷
解决方案
您需要先转置矩阵。
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; }
推荐阅读
- python - Python - 在多个子字符串之间捕获多个子字符串
- kotlin - 将 jOOQ 连接结果映射到多个 POJO
- php - HTML & PHP - Image (.png file type) not displaying
- python - 使用 AWS Lambda 从 S3 读取 JSON 文件
- java - 如果我的构造函数中的语句无法正常运行
- python - Using Recursion to obtain elements from nested tuples of tuples in Python
- cassandra - Cassandra datastax OperationTimedOutException
- typescript - Creating All Day Event failing
- javascript - 嵌入式/iframe-ed Leaflet 地图在 Squarespace 中未正确显示
- pandas - 计算数据框中的行数以确定时间和日期的事件数?