我有一个数组,我想将它作为参数传递给函数,例如:
function something(arrayP){
for(var i = 0; i < arrayP.length; i++){
alert(arrayP[i].value);
}
}
我发现arrayP[0]未定义,可能是因为在函数中没有说明arrayP是什么类型的数组。那么:
- 是否可以将数组作为参数传递?
- 如果可以,函数内部需要满足哪些要求?
我有一个数组,我想将它作为参数传递给函数,例如:
function something(arrayP){
for(var i = 0; i < arrayP.length; i++){
alert(arrayP[i].value);
}
}
我发现arrayP[0]未定义,可能是因为在函数中没有说明arrayP是什么类型的数组。那么:
只需将.value
删除即可,像这样:
function(arrayP){
for(var i = 0; i < arrayP.length; i++){
alert(arrayP[i]); //no .value here
}
}
当然你可以传递一个数组,但是为了获取特定位置的元素,只需 使用 arrayName[index]
,使用.value
将会获取数组中该位置上的对象的 value
属性 - 对于像字符串、数字等这样的数据类型,不存在该属性。例如,"myString".value
也将返回 undefined
。JavaScript是一种动态类型语言。这意味着您永远不需要声明函数参数的类型(或任何其他变量)。因此,只要arrayP
是一个数组,并且包含具有value
属性的元素,您的代码就可以正常工作。
可以将数组传递给函数,处理它们没有特殊要求。您确定传递给函数的数组实际上在[0]
位置有一个元素吗?