#javascript
Суть в том, что не могу получить полный массив из чисел. Что только не перебирал
для этого, но он заносит только первое значение в массив.
Как решить данную проблему? Пытался преобразовать в строку, но тоже выводит только
1 значение.
function mostNumbers(numbers) {
var arr = [numbers];
console.log(arr);
}
console.log(mostNumbers(1, 2, 3));
Ответы
Ответ 1
Или так : function mostNumbers() { return Array.from(arguments); } console.log(mostNumbers(3, 2, 7)); Array.fromОтвет 2
ES6, детка 1. function mostNumbers() { return [...arguments]; } console.log(mostNumbers(3, 2, 7)); 2. function mostNumbers(...numbers) { return numbers; } console.log(mostNumbers(3, 2, 7)); Проблема данных методов на данном этапе, что нет проверки на тип. Поэтому либо надо доверять тому, что приходит в функцию, либо делать проверку, а это цикл ¯\_(ツ)_/¯Ответ 3
function mostNumbers() { var arr = []; for (var i = 0; i < arguments.length; i++) { arr.push(arguments[i]); } return arr; } console.log(mostNumbers(1, 2, 3));Ответ 4
Дело в том, что в твоем примере функция всегда принимает только один параметр, сколько бы ты их ни передавал в функцию. Это ты и наблюдаешь. Почитай про функции с произвольным кол-вом параметров и как получить к ним доступ, например: https://learn.javascript.ru/arguments-pseudoarray Т.е. узнаешь кол-во параметров, создаешь массив нужного размера, а потом в цикле заполняешь. Ну или передавай как параметр сразу массиы целиком,
Комментариев нет:
Отправить комментарий