สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
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 } ]