Giả sử chúng ta có mảng object như sau:
const array = [
{key: 'a', value: false},
{key: 'a', value: 100},
{key: 'a', value: null},
{key: 'a', value: 23}
];Chúng ta cần viết hàm nhận vào mảng này và đưa tất cả object có giá trị falsy cho thuộc tính "value" xuống cuối, đồng thời sắp xếp các object còn lại theo thứ tự giảm dần theo "value".
Ví dụ
Dưới đây là đoạn code:
const arr = [
{key: 'a', value: false},
{key: 'a', value: 100},
{key: 'a', value: null},
{key: 'a', value: 23}
];
const isValFalsy = (obj) => !obj.value && typeof obj.value !== 'number';
const sortFalsy = arr => {
arr.sort((a, b) => {
if(isValFalsy(a) && isValFalsy(b)){
return 0;
}
if(isValFalsy(a)){
return 1;
};
if(isValFalsy(b)){
return -1;
};
return b.value - a.value;
});
};
sortFalsy(arr);
console.log(arr);Kết quả
Đoạn code sẽ in ra console:
[
{ key: 'a', value: 100 },
{ key: 'a', value: 23 },
{ key: 'a', value: false },
{ key: 'a', value: null }
]