Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp mảng object theo thuộc tính có giá trị falsy - JavaScript


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 } 
]