按具有假值屬性排列物件陣列 - JavaScript
假設我們有一個這樣的物件陣列 -
const array = [ {key: 'a', value: false}, {key: 'a', value: 100}, {key: 'a', value: null}, {key: 'a', value: 23} ];
我們需要編寫一個 JavaScript 函式,該函式接收一個這樣的陣列,並將“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 } ]
廣告