Computer >> Máy Tính >  >> Lập trình >> Javascript

Sắp xếp đối tượng mảng theo thuộc tính có giá trị sai - JavaScript

Giả sử, chúng ta có một mảng các đối tượng như thế này -

const array = [
   {key: 'a', value: false},
   {key: 'a', value: 100},
   {key: 'a', value: null},
   {key: 'a', value: 23}
];

Chúng tôi bắt buộc phải viết một hàm JavaScript nhận trong một mảng như vậy và đặt tất cả các đối tượng có giá trị sai cho thuộc tính "value" xuống dưới cùng và sắp xếp tất cả các đối tượng khác theo thứ tự giảm dần theo thuộc tính "value".

Ví dụ

Sau đây là mã -

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);

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[
   { key: 'a', value: 100 },
   { key: 'a', value: 23 },
   { key: 'a', value: false },
   { key: 'a', value: null }
]