2009-12-10 8 views
6

Ok, he estado preguntando muchas de las preguntas de JS últimamente, y me di cuenta de que solo tenía que ir a aprenderlo.javascript for() loop, split(), y pregunta de matriz

He seguido los tutoriales en http://www.tizag.com/javascriptT muy simple y directo.

Solo quiero asegurarme de que entiendo esto correctamente. Me tomó un tiempo para conseguirlo:

<script type="text/javascript"> 
var myString = "zero one two three four"; 

var mySplitResult = myString.split(" "); 

for(i = 0; i < mySplitResult.length; i++){ 
    document.write("<br /> Element " + i + " = " + mySplitResult[i]); 
} 
</script> 

-

var myString = "zero one two three four"; 

Obviamente eso crea una variable de cadena sencilla.

var mySplitResult = myString.split(" "); 

que divide usando "" como delimitador, y lo asigna a la matriz mySplitResult. ¿Correcto? ¿O no es una matriz?

for(i = 0; i < mySplitResult.length; i++){ 

¿Está diciendo el número de valores en la matriz? No parece que pueda estar diciendo la longitud real de los caracteres en la cadena.

document.write("<br /> Element " + i + " = " + mySplitResult[i]); 

Esto simplemente devuelve mySplitResult [i] variable "i". Como i aumenta con cada ciclo, extrae la información correcta de la matriz.

+8

La respuesta es "sí". No hay mucho más que decir. –

+1

Puede verificar detalles como este usando una referencia en línea como la de Mozilla: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference o la de Microsoft: http://msdn.microsoft.com/en-us/library/yek4tbz0 (VS.85) .aspx – NickFitz

Respuesta

1

Su análisis es correcto, pero debería verlo con solo probarlo. Use la extensión Firebug con Firefox y puede recorrer su javascript.

Esto lo ayudará a comprender lo que está sucediendo, ya que puede ver las propiedades del elemento y controlar lo que realmente está sucediendo.

13

Su comprensión es esencialmente correcta. Una cosa que debes hacer es declarar todas tus variables: esto es particularmente importante dentro de las funciones. Por lo tanto, usted debe declarar i como una variable, ya sea antes del bucle:

var i; 
for (i = 0; i < mySplitResult.length; i++) { 

... o en la primera expresión de la declaración for:

for (var i = 0; i < mySplitResult.length; i++) {