Как сохранить пользовательское приглашение (ввод) в массив и получить его максимальное и минимальное значение?

Я пытаюсь ввести значения в приглашение, преобразовать значения в целые числа, поместить значения в массив и получить минимальные и максимальные значения из массива. Я не знаю, нужно ли преобразовать пользовательский ввод в целые числа или преобразовать элементы массива в целые числа. Мне также нужен способ разбить массив из 1 элемента на размер ввода. Например, пользователь вводит подсказку «1 2 10 40», а затем получает предупреждение о том, что минимальное значение равно 1, а максимальное — 40. Длина массива должна быть равна 4. Вот как выглядит код, который я подделываю:

var numInput = prompt("Enter a series of numbers with spaces in between each:");
var numArray = [];
numArray.push(numInput);
numInput.split(" ");
alert(Math.min(numArray));
alert(Math.max(numArray));

person Almac    schedule 03.07.2015    source источник


Ответы (2)


Вам нужно присвоить результат .split переменной массива.

Math.min и Math.max ожидают, что числа будут в отдельных аргументах, а не в массиве. Вы можете использовать apply для разделения массива на аргументы.

var numInput = prompt("Enter a series of numbers with spaces in between each:");
var numArray = numInput.split(" ");

alert(Math.min.apply(null, numArray));
alert(Math.max.apply(null, numArray));

person Barmar    schedule 03.07.2015
comment
Большое спасибо за помощь. Это один из крутых способов использования подсказок, не прибегая к использованию массивов и циклов. Это супер чистый код! - person Almac; 03.07.2015

После того, как вы разделите строку, вам нужно найти самую высокую и самую низкую.

var numInput = prompt("Enter a series of numbers with spaces in between each:");
var numArray = numInput.split(" ");
var max=Number.MIN_VALUE;
var min=Number.MAX_VALUE;
for(i=0;i<numArray.length;i++){
  if(parseInt(numArray[i])<min)
    min=parseInt(numArray[i]);
  if(parseInt(numArray[i])>max)
     max=parseInt(numArray[i]);
}
alert(min);
alert(max);

person depperm    schedule 03.07.2015