为了账号安全,请及时绑定邮箱和手机立即绑定

以日期为键对地图进行排序 (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 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信