2010-12-18 291 views
23

tengo una matriz, y quiero pasarlo como un parámetro en una función como:pasar un array como parámetro en JavaScript

function something(arrayP){ 
    for(var i = 0; i < arrayP.length; i++){ 
      alert(arrayP[i].value); 
    } 
} 

que estoy recibiendo y que arrayP [0] no está definido, el cual podría ser cierto, ya que dentro de la función nunca escribí qué clase de matriz es P. Así,

  1. IS es posible pasar arrays como parámetros?
  2. Si es así, ¿cuáles son los requisitos dentro de la función?
+0

Esto es solo un ejemplo, no seas tan extravagante. ;-) Gracias por anotar –

+0

Le sugiero que obtenga más información sobre las matrices: https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Array_Object –

Respuesta

2

Es posible pasar matrices a funciones, y no existen requisitos especiales para tratarlas. ¿Está seguro de que la matriz a la que está pasando a su función en realidad tiene un elemento al [0]?

34

Basta con retirar la .value, así:

function(arrayP){  
    for(var i = 0; i < arrayP.length; i++){ 
     alert(arrayP[i]); //no .value here 
    } 
} 

Claro que se puede pasar un array, pero para obtener el elemento en esa posición, utilice únicaarrayName[index], la .value sería conseguir la propiedad value fuera un objeto en esa posición en la matriz, que para cosas como cadenas, números, etc. no existe. Por ejemplo, "myString".value también sería undefined.

+3

'String.prototype.value =" Hola, Nick, ¡rompí tu ejemplo! "'/Evil codez don No use –

+1

@ IvoWetzel ¿Por qué lo considera un código malvado? ¿Es vulnerable el código que proporcionó? – 5ervant

5

JavaScript es un lenguaje de tipeo dinámico. Esto significa que nunca necesita declarar el tipo de argumento de una función (o cualquier otra variable). Por lo tanto, su código funcionará siempre que arrayP sea una matriz y contenga elementos con una propiedad value.

Cuestiones relacionadas