Computer >> Máy Tính >  >> Lập trình >> Javascript

Trao đổi các cặp chỉ mục chẵn và lẻ trong nội bộ JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng các ký tự làm đối số đầu tiên và duy nhất.

Hàm của chúng ta nên hoán đổi từng chỉ mục chẵn liên tiếp với nhau và hoán đổi từng chỉ mục lẻ liên tiếp với nhau.

Hàm sẽ thực hiện các hoán đổi này tại chỗ.

Ví dụ -

Nếu mảng đầu vào là -

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];

Sau đó, mảng sẽ trở thành -

const output = [2, 3, 0, 1, 6, 7, 4, 5, 8];

bởi vì 0 và 2 được đổi chỗ, 1 và 3 được đổi chỗ, 4 và 6 được đổi chỗ, 5 và 7 được hoán đổi và cuối cùng 8 vẫn giữ nguyên.

Ví dụ

Sau đây là mã -

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);

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[
   2, 3, 0, 1, 6,
   7, 4, 5, 8
]