Не выходит передать переменную в функции. JS
function mapArray(...a){
arr = a ;
let arr2 = arr.map(function(num) {
return num +3;
});
}
mapArray([2,5,8])
Есть функция которую описал выше, и у меня проблема когда я пытаюсь получить num+3 для каждого элемент(чтоб было 5,8,11) не получаю данного результата. Но код ниже все выводит что мне нужно.
function mapArray(){
arr = [2,5,8] ;
let arr2 = arr.map(function(num) {
return num +3;
});
}
mapArray()
Подскажите что делаю не так.
Ответы (2 шт):
Чтобы функция что-то возвращала - нужно добавить в ней return, что буквально означает "вернуть". Вот и возвращаем уже новый массив.
Выводить ничего не будет, т.к. Вы собственно и не выводите. Оберните полученное значение из функции в console.log.
function mapArray(...arr) { // PS. В этом случае я функцию назвал бы как-то по-другому (нп. mapValues), т.е. в mapArray логично бы было принимать массив
return arr.map(function(num) {
return num + 3;
});
}
console.log(mapArray(2, 5, 8));
Вашу функцию можно записать вот так:
function mapArray(a){
return a.map((num) => num + 3);
}
mapArray([2,5,8])
У вас в коде две ошибки - функция mapArray ничего не возвращает. Необходимо добавить return.
И так же вы используете оператор расширения ... который не нужен, в случае если вы и так передаете массив. Он подошел бы в случае если вы передавали отдельно 3 аргумента, например вот так:
mapArray(2,5,8)
Так же я заменил синтаксис метода map на стандарт ES6 с использование стрелочной функции.