Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การสลับคู่ดัชนีคู่และคี่ภายในอาร์เรย์ใน JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของค่าคงที่เป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องสลับดัชนีคู่ที่ติดกันกับกัน และสลับดัชนีคี่ที่ติดกันกับกัน โดยทำการสลับในที่เดิม (in-place)

ตัวอย่าง

ถ้าอาร์เรย์นำเข้าคือ:

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];
    array[ind1] = array[ind2];
    array[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]