我有一个多维数组,它可以包含不同数量的数组。我想要做的是按键而不是值的顺序匹配所有数组,并为创建的每一行生成一个新数组,如下所示
var arr = [
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
]我需要的结果
var arr = [[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4],[5,5,5,5]]我如何才能做到这一点?
发布于 2018-02-28 12:36:35
我想这就是你要找的东西。
var arr = [
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
];
var res = arr.reduce((x, y) => {
for(let i in y) {
x[i] ? x[i].push(y[i]) : x[i] = [y[i]];
}
return x;
}, []);
console.log(res);
发布于 2018-02-28 12:49:18
我希望你正在寻找这一个。它在map()中隐式地检索列和行的长度。来源[Swap rows with columns (transposition) of a matrix in javascript
function transpose(a) {
return Object.keys(a[0]).map(function(c) {
return a.map(function(r) { return r[c]; });
});
}
console.log(transpose([
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
]));
https://stackoverflow.com/questions/49021988
复制相似问题