আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি লিটারেলের অ্যারে প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে গ্রহণ করবে।
ফাংশনটি প্রতিটি ক্রমাগত জোড় ইনডেক্সকে একে অপরের সাথে বদলাবে, এবং প্রতিটি ক্রমাগত বিজোড় ইনডেক্সকেও একে অপরের সাথে বদলাবে। এই বদলাবদলি ইন-প্লেস (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];
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 ]