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

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

以日期為鍵對地圖進行排序 (javascript)

以日期為鍵對地圖進行排序 (javascript)

小唯快跑啊 2023-07-20 10:37:11
我想在 javascript 中對地圖進行排序。地圖看起來像這樣:0: { key: '2020-09-29', value: { foo: 1, bar: 2} },1: { key: '2020-09-01', value: { foo: 3, bar: 4} },2: { key: '2020-09-08', value: { foo: 5, bar: 6} }等等..我找不到解決方案,有人可以給我提示嗎?我已經嘗試過這樣的事情:days_map = new Map([...days_map].sort(function(key, value) { return new Date(key); }));但它沒有對地圖進行排序。謝謝
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

您可以使用鍵對數組進行排序String#localeCompare。

let map = new Map([['2020-09-29', { foo: 1, bar: 2 }], ['2020-09-01', { foo: 3, bar: 4 }], ['2020-09-08', { foo: 5, bar: 6 }]]),

? ? sorted = new Map(Array.from(map).sort(([a], [b]) => a.localeCompare(b)));


console.log([...map]);

console.log([...sorted]);

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



查看完整回答
反對 回復 2023-07-20
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

var input = [{

    key: '2020-09-29',

    value: {

      foo: 1,

      bar: 2

    }

  },

  {

    key: '2020-09-01',

    value: {

      foo: 3,

      bar: 4

    }

  },

  {

    key: '2020-09-08',

    value: {

      foo: 5,

      bar: 6

    }

  }

]


input.sort((a, b) => {

  const first = a.key

  const second = b.key

  

  return first > second ? 1 : (first < second ? -1 : 0)

});

console.log(input);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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