เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของลิเทอรัลเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
ฟังก์ชันของเราควรสลับดัชนีคู่ที่ต่อเนื่องกัน และสลับดัชนีคี่ที่ต่อเนื่องกัน
ฟังก์ชันควรทำการสลับเหล่านี้เข้าที่
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
จากนั้นอาร์เรย์ควรกลายเป็น −
const output = [2, 3, 0, 1, 6, 7, 4, 5, 8];
เพราะ 0 กับ 2 ถูกสลับ 1 กับ 3 ถูกสลับ 4 กับ 6 ถูกสลับ 5 กับ 7 ถูกสลับ และสุดท้าย 8 ยังคงเหมือนเดิม
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; const swapPairs = (arr = []) => { const swap = (array, ind1, ind2) => { const temp = array[ind1]; arr[ind1] = arr[ind2]; arr[ind2] = temp; }; let i = 0; for(; i + 3 < arr.length; i += 4){ swap(arr, i, i + 2); swap(arr, i + 1, i + 3); }; if (i + 2 < arr.length){ swap(arr, i, i + 2); }; }; swapPairs(arr); console.log(arr);
ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
[ 2, 3, 0, 1, 6, 7, 4, 5, 8 ]