Cho mảng chứa nhiều đối tượng. Viết hàm sắp xếp nửa đầu mảng theo thứ tự tăng dần, nửa sau cũng tăng dần nhưng không trộn lẫn giữa hai nửa.
Mảng mẫu:
const arr = [
{id:1, x: 33},
{id:2, x: 22},
{id:3, x: 11},
{id:4, x: 3},
{id:5, x: 2},
{id:6, x: 1}
];Sắp xếp dựa trên thuộc tính 'x' của đối tượng.
Ví dụ
const arr = [
{id:1, x: 33},
{id:2, x: 22},
{id:3, x: 11},
{id:4, x: 3},
{id:5, x: 2},
{id:6, x: 1}
];
const sortInParts = array => {
const arr = array.slice();
const sorter = (a, b) => a['x'] - b['x'];
const arr1 = arr.splice(0, arr.length / 2);
arr.sort(sorter);
arr1.sort(sorter);
return [...arr1, ...arr];
};
console.log(sortInParts(arr));Kết quả
Kết quả in ra console:
[
{ id: 3, x: 11 },
{ id: 2, x: 22 },
{ id: 1, x: 33 },
{ id: 6, x: 1 },
{ id: 5, x: 2 },
{ id: 4, x: 3 }
]