#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 Т.е. узнаешь кол-во параметров, создаешь массив нужного размера, а потом в цикле заполняешь. Ну или передавай как параметр сразу массиы целиком,
Комментариев нет:
Отправить комментарий