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

Resuelto wong2 asked hace 13 años • 25 respuestas

Aprendí de los libros que debes escribir un bucle for como este:

for(var i=0, len=arr.length; i < len; i++){
    // blah blah
}

por lo que arr.lengthno se calculará cada vez.

Otros dicen que el compilador optimizará esto, por lo que puedes simplemente escribir:

for(var i=0; i < arr.length; i++){
    // blah blah
}

Solo quiero saber cuál es la mejor manera en la práctica.

wong2 avatar Mar 18 '11 15:03 wong2
Aceptado

Después de realizar esta prueba con la mayoría de los navegadores modernos: https://jsben.ch/wY5fo

Actualmente , la forma de bucle más rápida (y en mi opinión la más obvia sintácticamente).

Un bucle for estándar con almacenamiento en caché de longitud

    var i = 0, len = myArray.length;
    while (i < len) {
        // your code
        i++
    }

Yo diría que este es definitivamente un caso en el que aplaudo a los desarrolladores de motores JavaScript. Un tiempo de ejecución debe optimizarse para lograr claridad, no inteligencia .

jondavidjohn avatar Aug 31 '2011 03:08 jondavidjohn

La forma más rápida de recorrer una matriz de JavaScript es:

var len = arr.length;
while (len--) {
    // blah blah
}

Vea esta publicación para una comparación completa

gnur avatar Mar 18 '2011 08:03 gnur