เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม ฟังก์ชันควรจัดเรียงอาร์เรย์ให้ตัวเลขคี่ทั้งหมดมาก่อน ตามด้วยตัวเลขคู่ ลำดับของตัวเลขคี่หรือคู่ภายในตัวเองไม่สำคัญมาก แต่ตัวเลขคี่ทั้งหมดควรมาก่อนตัวเลขคู่ใดๆ
เช่น ถ้าอาร์เรย์อินพุตคือ:
const arr = [0, 2, 4, 6, 8, 0, 1, 3, 5, 7, 9, 1];
อาร์เรย์ที่จัดเรียงแล้วควรเป็น (เป็นหนึ่งในหลายคำตอบที่ตัวเลขคี่ทั้งหมดอยู่ก่อนคู่):
const output = [ 1, 3, 5, 7, 9, 1, 0, 2, 4, 6, 8, 0 ];
ตัวอย่าง
const arr = [0, 2, 4, 6, 8, 0, 1, 3, 5, 7, 9, 1];
const sortOddEven = (arr = []) => {
let i = 0, j, temp;
while (i < arr.length - 1) {
j = i;
while (!(arr[j] % 2) && arr[j + 1] % 2) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
if (!j) {
break;
};
j--;
};
i++;
};
};
sortOddEven(arr);
console.log(arr);
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
[ 1, 3, 5, 7, 9, 1, 0, 2, 4, 6, 8, 0 ]