亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用兩種排序條件對 JavaScript 中的對象數組進行排序

使用兩種排序條件對 JavaScript 中的對象數組進行排序

侃侃無極 2023-07-29 16:03:39
我的對象數組如下。let obj=[{  id:1,  pinnedBy:"abc",  value:9},{  id:2,  pinnedBy:null,  value:10},{  id:3,  pinnedBy:"abc",  value:11},{  id:4,  pinnedBy:null,  value:12},];我的排序條件是pinnedBy 具有值 NOT null 的項目應位于頂部,并且應按值降序排序。所有其他項目應位于 pinnedBy 項目下方,并且應按值降序排序。應用排序后結果將是obj=[{  id:3,  pinnedBy:"abc",  value:11},{  id:1,  pinnedBy:"abc",  value:9},{  id:4,  pinnedBy:null,  value:12},{  id:2,  pinnedBy:null,  value:10}];我怎樣才能實現這個目標?
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您可以按布爾值的增量排序,然后按value屬性排序。


let array = [{ id: 1, pinnedBy: "abc", value: 9}, { id: 2, pinnedBy: null, value: 10 }, { id: 3, pinnedBy: "abc", value: 11 }, { id: 4, pinnedBy: null, value: 12 }];


array.sort((a, b) =>

    (a.pinnedBy === null) - (b.pinnedBy === null) ||

    b.value - a.value

);


console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對 回復 2023-07-29
  • 1 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號