Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

จัดเรียงอาร์เรย์อ็อบเจกต์ตาม property ที่มีค่า falsy - JavaScript

สมมติว่าเรามีอาร์เรย์ของอ็อบเจกต์ดังนี้:

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

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

ตัวอย่าง

โค้ดต่อไปนี้เป็นตัวอย่าง:

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