Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng hai chiều và trả về mảng đã hoán vị của nó.
Mã cho điều này sẽ là -
Phương pháp 1:Sử dụng Array.prototype.forEach ()
const arr = [ [0, 1], [2, 3], [4, 5] ]; const transpose = arr => { const res = []; arr.forEach((el, ind) => { el.forEach((elm, index) => { res[index] = res[index] || []; res[index][ind] = elm; }); }); return res; }; console.log(transpose(arr));
Phương pháp 2:Sử dụng Array.prototype.reduce ()
const arr = [ [0, 1], [2, 3], [4, 5] ]; const transpose = arr => { let res = []; res = arr.reduce((acc, val, ind) => { val.forEach((el, index) => { acc[index] = acc[index] || []; acc[index][ind] = el; }); return acc; }, []) return res; }; console.log(transpose(arr));
Đầu ra trong bảng điều khiển cho cả hai phương thức sẽ là -
[ [ 0, 2, 4 ], [ 1, 3, 5 ] ]