Передача массива в качестве параметра в JavaScript
У меня есть массив, и я хочу передать его как параметр в такой функции, как:
function something(arrayP){
for(var i = 0; i < arrayP.length; i++){
alert(arrayP[i].value);
}
}
Я получаю этот массивP [0] undefined, который может быть правдой, поскольку внутри функции я никогда не писал, что такое массив arrayP. Таким образом,
- Можно ли передавать массивы в качестве параметров?
- Если это так, каковы требования внутри функции?
Ответы
Ответ 1
Просто удалите .value
, например:
function(arrayP){
for(var i = 0; i < arrayP.length; i++){
alert(arrayP[i]); //no .value here
}
}
Конечно, вы можете передать массив, но чтобы получить элемент в этой позиции, используйте только arrayName[index]
, .value
будет получать свойство value
от объекта в этой позиции в массиве - что для вещей как строки, числа и т.д. не существует. Например, "myString".value
также будет undefined
.
Ответ 2
JavaScript - это динамически типизированный язык. Это означает, что вам никогда не нужно объявлять тип аргумента функции (или любую другую переменную). Таким образом, ваш код будет работать до тех пор, пока arrayP
является массивом и содержит элементы со свойством value
.
Ответ 3
Можно передавать массивы в функции, и нет особых требований к работе с ними. Вы уверены, что массив, к которому вы переходите к своей функции, фактически имеет элемент в [0]
?