varias recorrer matrices loop for dimensiones bidimensional array javascript performance

matrices - recorrer array bidimensional javascript



¿Cuál es la forma más rápida de recorrer una matriz en JavaScript? (6)

Posible duplicado:
¿Cuál es la mejor manera de hacer bucles en JavaScript?
¿Cuál es la mejor manera de recorrer un conjunto de elementos en JavaScript?

¿Algunas ideas?


Como se responde en otra parte (¿por qué existe este hilo?): El reverso mientras:

var i = foo.length; while (i--) { /* do something with foo[i] */ }

..es el bucle más rápido si puedes lidiar con las advertencias que:

  • el orden inverso no siempre es adecuado

  • es un poco difícil de leer

  • agrega una variable a la huella de cualquier ámbito en que se encuentre

  • es solo un poco más rápido que la longitud for memoria caché más pequeña y más legible for ciclo



El enlace de CMS debe mostrarle que para pequeños conjuntos de datos son todos rápidos, lo único que sugeriría es que evite for (a in b) ya que tiene una sobrecarga de memoria mucho mayor que cualquier otra construcción de bucle y puede ser potencialmente mucho más lento debido a su semántica "interesante".

Cualquier cosa, con la excepción de for(in) cualquier JS real debería pasar bastante más tiempo en realidad haciendo un trabajo real que el que se gasta en manejar el bucle, por lo que una pequeña variación en el costo del ciclo no debería ser demasiado importante.


¿Qué pasa con un viejo bucle for old?

for( var i = 0; i < list.length; i++ ) { // do something with list[i] }

La semántica de for...in and for...each...in tiende a confundir a las personas y conducir a resultados inesperados.


Supuestamente los objetos son más rápidos ... Por ejemplo:

var array = {"0": "foo", "1": "bar"} for(var i in array){ var val = array[i]; // do something }


Esto fue cubierto recientemente en el Weblog de Greg Reimer .

La respuesta rápida es esta:

for (var i=0, node; node = hColl[i++];) { // do something with node }