Viết hàm sắp xếp mảng sao cho: các số chẵn đứng trước (tăng dần), các số lẻ đứng sau (tăng dần).
Ví dụ
Đầu vào: [2, 5, 2, 6, 7, 1, 8, 9]
Đầu ra: [2, 2, 6, 8, 1, 5, 7, 9]
Giải pháp
Tùy chỉnh hàm so sánh sort:
const arr = [2, 5, 2, 6, 7, 1, 8, 9];
const isEven = num => num % 2 === 0;
const sorter = (a, b) => {
// Chẵn đứng trước lẻ
if (isEven(a) && !isEven(b)) return -1;
if (!isEven(a) && isEven(b)) return 1;
// Cùng chẵn/lẻ: sắp xếp tăng dần
return a - b;
};
arr.sort(sorter);
console.log(arr);
Kết quả
Đầu ra trong console:
[2, 2, 6, 8, 1, 5, 7, 9]