Cần viết hàm JavaScript nhận mảng số nguyên. Hàm sắp xếp mảng sao cho tất cả số lẻ đến trước, theo sau là số chẵn. Thứ tự của số lẻ hoặc chẵn trong nhóm của chúng không quan trọng, nhưng tất cả số lẻ phải đứng trước bất kỳ số chẵn nào.
Ví dụ - Nếu mảng đầu vào:
const arr = [0, 2, 4, 6, 8, 0, 1, 3, 5, 7, 9, 1];
Mảng đã sắp xếp (một trong nhiều giải pháp mà tất cả lẻ trước chẵn):
const output = [ 1, 3, 5, 7, 9, 1, 0, 2, 4, 6, 8, 0 ];
Ví dụ
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);
Kết quả
Kết quả trong console sẽ là:
[
1, 3, 5, 7, 9,
1, 0, 2, 4, 6,
8, 0
]