Javascript 数组是否比 Hashmap 更能赋予元素静态且确定的顺序?

问题描述 投票:0回答:1

假设我们正在开发一个将返回 json 有效负载的 Web 服务

在这个 json 有效负载中,我有一个名为 elementCollection 的键

选项 1 将其作为对象数组返回

{
   "elementCollection" : [
      { "id" : "...", "val": "..."}, { "id" : "...", "val": "..."},{ "id" : "...", "val": "..."}
   ]
}

选项 2 返回对象的 Hashmap

{
   "elementCollection" : {
      "id01": { "id" : "...", "val": "..."},
      "id02": { "id" : "...", "val": "..."},
      "id03": { "id" : "...", "val": "..."}
   }
}

如果我们想提供确定性的排序作为响应,并且顺序很重要,请确保通过响应有效负载保留顺序......

问题:Array 是否比 Hashmap 更好/更安全,或者它们是等效的解决方案?

所以我们可以确定 Option01response.elementCollection === Object.values(Option02response.elementCollection) 如果在某些情况下这可能会被破坏......您将如何重现/描述它?

或者如果我们使用 Hashmap,他应该采用更具体的解决方案,例如...... 选项 3 将其作为断言排序的对象的哈希图返回

{
   "elementCollection" : {
      "id01": { "id" : "...", sortId:0, "val": "..."},
      "id02": { "id" : "...", sortId:1, "val": "..."},
      "id03": { "id" : "...", sortId:2, "val": "..."}
   }
}
javascript arrays sorting javascript-objects
1个回答
0
投票

我总是要求后端以数组的形式向我提供所有数据,因为您可以将大量数组方法应用于数据。如果数据以地图形式出现,我总是最终将数据转换为数组。当需要数组中的项目时,我总是可以

Array::find()
。在极少数情况下,我会创建一个地图来通过 id 属性查找项目。

© www.soinside.com 2019 - 2024. All rights reserved.