¿Matriz de elementos frente a mapeo + matriz de identificaciones con web3js?

En la mayoría de los artículos recomiendan usar mapping. Pero las asignaciones no permiten iterar sus elementos directamente. Y nadie dice qué hacer si necesita obtener todos los elementos almacenados.

En mi caso, necesito almacenar cualquier artículo y luego mostrarlo en la web como cryptokitties. Nota: pueden mostrar todos los artículos.

Entonces, ¿qué debería ser mejor: almacenar todos los valores como matriz o almacenar todos los valores como mapeo y almacenar ID para ellos como matriz? ¿Y qué caso es mejor para "paginar"? ¿Quizás hay otras soluciones?

Respuestas (1)

Es mejor almacenar todos los valores como mapeo y almacenar ID de ellos en una matriz. Al igual que con la ayuda del mapeo, puede acceder a un registro individual directamente usando la clave. En el peor de los casos La complejidad del tiempo de acceso al registro individual es O(1) . Sin embargo, si usa una matriz para acceder/buscar un registro específico, tendrá que iterar la matriz completa y, en el peor de los casos, la complejidad del tiempo será O(N) . Tendrá que iterar sobre todos los elementos almacenados en una matriz. (Supongo que las identificaciones de los registros almacenados son diferentes de los índices de matriz).

Si almacena claves de mapeo en una matriz, podrá recuperar todos los registros usando claves almacenadas en una matriz. Al usar esas claves, puede obtener todos los registros.

Consulte el siguiente blog para obtener más detalles:

https://blog.upstate.agency/mappings-arrays-87afc697e64f