在JavaScript中将数组作为参数传递

时间:2010-12-18 19:04:06

标签: javascript arrays

我有一个数组,我希望将它作为参数传递给函数,例如:

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

我得到的是arrayP [0]未定义,这可能是真的,因为在函数内部我从来没有写过什么样的数组arrayP。所以,

  1. 是否可以将数组作为参数传递?
  2. 如果是,那么函数内部的要求是什么?

3 个答案:

答案 0 :(得分:35)

只需删除.value,如下所示:

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

当然你可以传递一个数组,但为了让元素在那个位置,只使用 arrayName[index].value将获得value属性关闭数组中该位置的对象 - 对于字符串,数字等不存在的东西。例如,"myString".value也是undefined

答案 1 :(得分:5)

JavaScript是一种动态类型语言。这意味着您永远不需要声明函数参数(或任何其他变量)的类型。因此,只要arrayP是一个数组并且包含具有value属性的元素,您的代码就会起作用。

答案 2 :(得分:2)

可以将数组传递给函数,并且没有特殊要求来处理它们。您确定要传递给函数的数组实际上是[0]的元素吗?