Как числа преобразовать в массив?

211
12 декабря 2017, 21:10

Суть в том, что не могу получить полный массив из чисел. Что только не перебирал для этого, но он заносит только первое значение в массив.

Как решить данную проблему? Пытался преобразовать в строку, но тоже выводит только 1 значение.

function mostNumbers(numbers) { 
  var arr = [numbers]; 
  console.log(arr); 
} 
 
console.log(mostNumbers(1, 2, 3));

Answer 1

function mostNumbers() { 
  var arr = []; 
  for (var i = 0; i < arguments.length; i++) { 
    arr.push(arguments[i]); 
  } 
  return arr; 
} 
console.log(mostNumbers(1, 2, 3));

Answer 2

Или так :

function mostNumbers() { 
  return Array.from(arguments); 
} 
console.log(mostNumbers(3, 2, 7));

Array.from

Answer 3

ES6, детка

function mostNumbers() { 
  return [...arguments]; 
} 
console.log(mostNumbers(3, 2, 7));

function mostNumbers(...numbers) { 
  return numbers; 
} 
console.log(mostNumbers(3, 2, 7));

Проблема данных методов на данном этапе, что нет проверки на тип. Поэтому либо надо доверять тому, что приходит в функцию, либо делать проверку, а это цикл ¯\_(ツ)_/¯

Answer 4

Дело в том, что в твоем примере функция всегда принимает только один параметр, сколько бы ты их ни передавал в функцию. Это ты и наблюдаешь.

Почитай про функции с произвольным кол-вом параметров и как получить к ним доступ, например: https://learn.javascript.ru/arguments-pseudoarray

Т.е. узнаешь кол-во параметров, создаешь массив нужного размера, а потом в цикле заполняешь.

Ну или передавай как параметр сразу массиы целиком,

READ ALSO
Ошибка в валидаторе при использовании js

Ошибка в валидаторе при использовании js

Почему этот js при перезагрузке страницы выдает в валидаторе такую ошибку:

215
Помогите найти информацию по Laravel

Помогите найти информацию по Laravel

Недавно начал вникать в прелести LaravelПервый рабочий проект занял много времени и сил, но решить все проблемы все же вышло, хоть и не без помощи...

214
PHP Как обратиться к элементу массива?

PHP Как обратиться к элементу массива?

вывожу переменную $dl через print_r

216