Chuyển hàng thành cột, cột thành hàng cho mảng 2 chiều.
Phương pháp 1: forEach
const arr = [[0,1],[2,3],[4,5]];
const transpose = arr => {
const res = [];
arr.forEach((el, i) => el.forEach((v, j) => { res[j] = res[j] || []; res[j][i] = v; }));
return res;
};
console.log(transpose(arr));
Phương pháp 2: reduce
const transpose = arr => arr.reduce((acc, val, i) => {
val.forEach((v, j) => { acc[j] = acc[j] || []; acc[j][i] = v; });
return acc;
}, []);
console.log(transpose(arr));
Kết quả
[ [ 0, 2, 4 ], [ 1, 3, 5 ] ]