Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จับคู่ดัชนีคู่คี่กับค่าใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลข อาร์เรย์ที่กำหนดให้เป็นอินพุตของฟังก์ชันมีคุณสมบัติพิเศษสองประการ -

  • ความยาวของอาร์เรย์จะเป็นเลขคู่เสมอ

  • จำนวนเลขคู่และจำนวนเลขคี่ในอาร์เรย์จะเท่ากันเสมอ (นั่นคือ ทั้งสองมีค่าเท่ากับครึ่งหนึ่งของความยาวของอาร์เรย์)

ฟังก์ชันควรสับเปลี่ยนองค์ประกอบของอาร์เรย์เพื่อให้ค่าคู่ทั้งหมดอยู่ในดัชนีคู่ และค่าคี่ทั้งหมดจะใช้ดัชนีคี่

โปรดทราบว่าอาจมีวิธีแก้ปัญหาที่ถูกต้องมากกว่าหนึ่งวิธี เราจำเป็นต้องค้นหาวิธีใดวิธีหนึ่ง

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [1, 2, 3, 4, 5, 6];
const arrangeToIndices = (arr = []) => {
   let [even, odd] = [0, 1];
   while (even < arr.length && odd < arr.length) {
      if (arr[even] % 2 === 1 && arr[odd] % 2 === 0) {
         [arr[even], arr[odd]] = [arr[odd], arr[even]];
         [even, odd] = [even + 2, odd + 2];
      } else {
         if (0 === arr[even] % 2){
            even += 2;
         };
         if (1 === arr[odd] % 2){
            odd += 2
         };
      };
   };
   return arr;
};
console.log(arrangeToIndices(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

[ 2, 1, 4, 3, 6, 5 ]