首页 > 解决方案 > Object.fromEntries () 不尊重迭代器的顺序

问题描述

我需要按其键对以下对象进行排序

const leagues = {
  2020: [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
  2021: [{}],
  2022: [{}],
};

为此尝试以下

const entries = Object.entries(leagues).sort((a, b) => b[0].localeCompare(a[0]));

我得到了预期的结果

[
  [ '2022', [ {} ] ],
  [ '2021', [ {} ] ],
  [
    '2020',
    [
      {}, {}, {}, {}, {},
      {}, {}, {}, {}, {},
      {}
    ]
  ]
]

现在我想再次将此结果转换为一个对象,为此我尝试以下操作

const output = Object.fromEntries(entries);

奇怪的是这个调用的输出忘记了顺序

{
  '2020': [
    {}, {}, {}, {}, {},
    {}, {}, {}, {}, {},
    {}
  ],
  '2021': [ {} ],
  '2022': [ {} ]
}

我怎样才能达到预期的效果?

标签: javascript

解决方案


推荐阅读