เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์สองมิติและส่งกลับอาร์เรย์ที่มีการทรานสโพส
รหัสสำหรับสิ่งนี้จะเป็น −
วิธีที่ 1:การใช้ 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));
วิธีที่ 2:การใช้ 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));
ผลลัพธ์ในคอนโซลสำหรับทั้งสองวิธีจะเป็น -
[ [ 0, 2, 4 ], [ 1, 3, 5 ] ]