0
Как использовать массив внутри функции в JavaScript?
Если создать массив вне функции, а затем создать функцию, то как массив можно использовать внутри функции? С обычными переменными функция работает нормально, но переменная массива не работает внутри функции. Для использования массива внутри функции нужно сделать дополнительные действия кроме тех что нужно для обычных переменных? Заранее спасибо тем кто ответит.
5 ответов
+ 2
function fun (arr1,arr2,arr3,n=0){
return arr3[n] = arr1[n] + arr2[n];
}
console.log(fun (2,8,1,0));
В данном случае arr1, arr2, arr3 являются аргументами функции и они не имеют ничего общего с массивами, (кроме одинаковых имён) 😎
То есть у вас получается:
function fun (arg1,arg2,arg3,n=0){
return arg3[n] = arg1[n] + arg2[n];
}
console.log(fun (2,8,1,0));
И так как вы при вызове функции присваиваете числа, а не массивы, то и результат получается "NaN".
Если же вы присвоите данным аргументам массивы, то добьётесь желаемого результата:
console.log( fun([2],[8],[1]) );
Итак, если вы желаете просто использовать в функции массивы обьявленные вне функции, то достаточно написать функцию без аргументов:
let n = 0,
arr1 = [2,],
arr2 = [5,],
arr3 = new Array(2);
function fun(){
return arr3[n] = arr1[n] + arr2[n];
}
console.log(fun());
Так как в функции выполняется всего одно выражение, то её можно сократить:
const fun=()=>arr3[n]=arr1[n]+arr2[n];
+ 1
Массив внутри функции используется также как и обычная переменная.
Если у вас возникли проблемы с кодом, то вставьте его в свой вопрос.
+ 1
Solo Спасибо, получилось.)
Пример:
var arr1 = new Array(2);
var arr2 = new Array(2);
var arr3 = new Array(2);
function fun (arr1,arr2,n=0){
return arr3[n]= arr1[n]+arr2[n];
}
var a = 2,b = 3;
console .log(fun ([a],[b]));
0
Solo Спасибо, после вашего ответа заново посмотрел и понял в чëм была причина, либо ставил квадратные скобки в аргументах при создании функции, либо при вызове функции, это сильно запутало.
Искал аналогичный вопрос, но никто его похоже не писал.
Вот пример правильного варианта для тех кто так же запутались с использованием массива созданного вне функции и использованного внутри функции:
var n = 0;
var arr1 = new Array(2);
var arr2 = new Array(2);
var arr3 = new Array(2);
arr1[n] = 5;
arr2[n] = 8;
function fun (arr1,arr2,arr3,n=0){
return arr3[n]= arr1[n]+arr2[n];
}
console .log(fun (arr1,arr2,arr3));
0
Solo А вот так пишет "NaN":
var n = 0;
var arr1 = new Array(2);
var arr2 = new Array(2);
var arr3 = new Array(2);
arr1[n] = 2;
arr2[n] = 5;
function fun (arr1,arr2,arr3,n=0){
return arr3[n]= arr1[n]+arr2[n];
}
console.log(fun (2,8,1,0));
Почему так и как было бы правильно?