2010-12-18 5 views
23

J'ai un tableau, et je veux le transmettre comme paramètre dans une fonction telle que:Passer un tableau en tant que paramètre JavaScript

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

Je reçois que arrayP [0] est non définie, qui pourrait être vrai car à l'intérieur de la fonction, je n'ai jamais écrit quel type de tableau arrayP est. Ainsi,

  1. Est-il possible de passer des tableaux en tant que paramètres?
  2. Si oui, quelles sont les exigences à l'intérieur de la fonction?
+0

Ceci est juste un exemple, ne soyez pas si peeky. ;-) Merci de noter. –

+0

Je vous suggère d'en savoir plus sur les tableaux: https://developer.mozilla.org/fr/JavaScript/Guide/Predefined_Core_Objects#Array_Object –

Répondre

2

Il est possible de passer des tableaux à des fonctions, et il n'y a pas d'exigences particulières pour les traiter. Etes-vous sûr que le tableau que vous passez à votre fonction a effectivement un élément à [0]?

34

enlèverait juste le .value, comme ceci:

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

Bien sûr, vous pouvez passer un tableau, mais pour obtenir l'élément à cette position, utilisez nearrayName[index], le .value percevraient la propriété value off un objet à cette position dans le tableau - qui pour des choses comme les chaînes, les nombres, etc. n'existe pas. Par exemple, "myString".value serait également undefined.

+3

'String.prototype.value =" Bonjour Nick, j'ai cassé votre exemple! "'/Evil codez don ne pas utiliser –

+1

@IvoWetzel Pourquoi le considérez-vous comme un code malveillant? Le code qu'il a fourni est-il vulnérable? – 5ervant

5

JavaScript est un langage typé dynamiquement. Cela signifie que vous n'avez jamais besoin de déclarer le type d'un argument de fonction (ou toute autre variable). Ainsi, votre code fonctionnera tant que arrayP est un tableau et contient des éléments avec une propriété value.

Questions connexes