ฟังก์ชันนี้สร้างอาร์เรย์ของคู่ (pairs) โดยจับคู่สมาชิกตัวแรกกับตัวสุดท้าย ตัวที่สองกับตัวลำดับสองจากท้าย ไปเรื่อยๆ
ตัวอย่าง
// Input: [1, 2, 3, 4, 5, 6] // Output: [[1, 6], [2, 5], [3, 4]]
ตัวอย่างโค้ด
const arr = [1, 2, 3, 4, 5, 6];
const edgePairs = arr => {
const res = [];
const upto = arr.length % 2 === 0 ? arr.length / 2 : Math.floor(arr.length / 2);
for (let i = 0; i < upto; i++) {
res.push([arr[i], arr[arr.length - 1 - i]]);
}
// ถ้าความยาวคี่ เพิ่มสมาชิกกลางเข้าไป
if (arr.length % 2 !== 0) {
res.push([arr[Math.floor(arr.length / 2)]]);
}
return res;
};
console.log(edgePairs(arr));
การทำงาน
- วนลูปครึ่งหนึ่งของอาร์เรย์
- จับคู่
arr[i]กับarr[length-1-i] - ถ้าความยาวคี่ เพิ่มสมาชิกกลางเป็นคู่เดี่ยว
ผลลัพธ์
[ [ 1, 6 ], [ 2, 5 ], [ 3, 4 ] ]