Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Ma trận chuyển vị (transpose) 2D - JavaScript

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 ] ]