const a= [1,2,3,4,5,6,7,8,9,10];
function evenNum (a){
for (let element of a){
if (element%2===0){
console.info(element);
}
}
};
console.info(oddNum());
function oddNum (a){
for (let element of a){
if (element%2!=0){
console.info(element);
}
}
};
console.info(evenNum([1,2,3,4,5,6,7,8,9,10]))
Изучение JavaScript для начинающих в программировании в целом. Поскольку я следил за этим видео текстом, в этом «упражнении» мы хотели отображать только нечетные и четные числа в массиве.
Хотя вторая функция работает нормально, я не понимаю, почему я не могу объявить массив перед функцией evenNum
и использовать его в качестве параметра следующей функции.
Ожидал тех же результатов, что и функция ниже.
«и использовать массив в качестве параметра следующей функции.»: да, но вы этого не сделали — вы не использовали массив в качестве параметра.
Это проблема:
function evenNum (a) {
В этом определении функции a
объявлен как параметр локальной функции, поэтому это НЕ та же переменная, что и глобальный массив, который также имеет имя a
.
Вероятно, будет легче понять, если вы присвоите параметру функции имя, отличное от имени глобального массива.
Это тоже проблема:
console.info(oddNum());
Вы определили, что функция oddNum()
требует параметра, но вызываете ее без параметра.
Когда вы вызываете EvenNum, вы должны передать ему массив следующим образом:
console.info(evenNum(a));
Вы объявили новую переменную, сделав ее параметром.