【问题标题】:convert array(2) that has sorted object to object [duplicate]将已排序对象的数组(2)转换为对象[重复]
【发布时间】:2021-10-02 03:52:23
【问题描述】:

我正在尝试对 db 中的对象进行排序

MyOjbect : {
 key: {
val1:"value",
val2:"",
val3:time,
val4:...
...}
}

我按 val3 对对象进行了排序

const sorted = Object.entries(MyObject)
.sort((x,y) => {x[1].val3 - y[1].val3} );

得到了一个数组类型。

0:(2) ["key" , {val1:...val2:...}]

1:(2) ["key" , {val1:...val2:...}]

...

我尝试 reduce() 让它回到对象类型,但它变成了未排序的顺序

如何保持订单排序并将类型更改为对象?

【问题讨论】:

  • 表示非负整数的键将自动按升序排列,并将放在任何其他键之前。一般来说,依赖对象中项目的顺序并不是一个好主意,这也是原因之一。如果您想要一些有序且可序列化的东西,请使用数组。如果您不需要它可序列化,那么您可以使用始终保持插入顺序的 Map。

标签: javascript firebase sorting


【解决方案1】:

你不能。对象不会像数组那样保持排序顺序。如果您想对keys 进行排序,则需要使用数组。

猜你喜欢
  • 1970-01-01
  • 2017-09-13
  • 2021-09-29
  • 2018-09-12
  • 1970-01-01
  • 2023-03-19
  • 2017-08-11
  • 1970-01-01
相关资源
最近更新 更多