Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การเรียงลำดับวัตถุอาร์เรย์ตามคุณสมบัติที่มีค่าเท็จ - JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -

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

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวและวางอ็อบเจ็กต์ทั้งหมดที่มีค่าเท็จสำหรับคุณสมบัติ "ค่า" ไว้ที่ด้านล่างสุด และจัดเรียงออบเจกต์อื่นๆ ทั้งหมดตามลำดับที่ลดลงตามคุณสมบัติ "ค่า"

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ในคอนโซล -

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