¿Cómo mantener ordenado un objeto / matriz Javascript mientras se mantienen las búsquedas clave?

Tengo algunos datos que originalmente almacené en un objeto Javascript genérico, con el ID como clave:

{
  "7": {"id":"7","name":"Hello"},
  "3": {"id":"3","name":"World"},
  ...
}

Sin embargo, descubrí que los navegadores no garantizan un orden de objeto en particular al recorrerlos, por lo que en el "3" anterior aparecería antes del "7". Cambié a usar un formato de matriz como este:

[
  {"id":"7","name":"Hello"},
  {"id":"3","name":"World"},
  ...
]

Ahora, puedo recorrer en el orden correcto pero no puedo hacer búsquedas rápidas, p. @data["3"] sin tener que recorrer la matriz.

¿Hay una buena manera de combinar ambos enfoques? Prefiero evitar usar un objeto separado para cada formato, porque el objeto es bastante grande (cientos de elementos).

Respuestas a la pregunta(1)

Su respuesta a la pregunta