Добрый день. Только начинаю учить javascript и столкнулась с такой проблемой. Стоит задача: найти максимальное число, введенное пользователем. Числа запрашиваю через prompt(). Если вводить однозначные числа, то всё работает. Но, мне необходимо, чтобы была возможность ввода любых целых чисел. Для решения этой проблемы я воспользовалась методом .split. Но теперь выводится только первое число, я так понимаю, из-за того, что цифры становятся строковыми значениями и поэтому не могут сравниться. Как их можно преобразовать числа? Код:
var a = prompt('Введите числа через запятую').split(',');
var max = a[0];
for(i = a; i < a; i++){
if (a[i] > max) {max = a[i]}
}
document.write('Максимальное число, которое вы ввели: ' + max);
Для начала вы допустили две ошибки в условии цикла -
for(i = a; i < a; i++){
a
это массив, ([] < []) === false
, поэтому у вас тело цикла выполняется только один раз.
var a = ('-13, 23423, .23423, 14.88, 22e8, 3*5,не число,,0x34').split(',');
var max = +a[0];
for(var i = 0; i < a.length; i++){
a[i] = +a[i];
if(a[i] > max){max = a[i]}
}
document.write('Максимальное число, которое вы ввели: ' + max);
let numbers = ('-13, 23423, .23423, 14.88, 22e8, 3*5,не число,,0x34').split(',');
console.log(numbers.map(string => +string));
let numbers = ('-13, 23423, .23423, 14.88, 22e8, 3*5,не число,,0x34').split(',');
console.log(numbers.map(string => parseInt(string)));
let numbers = ('-13, 23423, .23423, 14.88, 22e8, 3*5,не число,,34').split(',');
console.log(numbers.map(string => parseFloat(string)));
let numbers = ('-13,23423,.23423,14.88,22e8,3*5,534,2,2445,45645,не число,,0x34').split(',');
console.log(numbers.map(string => string*1));
console.log(numbers.map(string => string/1));
console.log(numbers.map(string => string**1));
console.log(numbers.map(string => string%++string));// за такое бьют
console.log(numbers.map(string => string-0));
// одно исключение - число и строка складываются как строки
console.log(numbers.map(string => string+0));
let numbers = ('-13,23423,.23423,14.88,22e8,3*5,534,2,2445,45645,не число,,0x34').split(',');
console.log(numbers.map(string => (new Number(string))));
// Здесь вы увидите в консоли объекты
let justDoIt = true,
number = null,
nums = [];
do{
let num = prompt("Введите число:");
if(num === null || num.trim() === ''){ // null - отмена ввода и пустая строка приводят к выходу из цикла
justDoIt = false;
}else if((num = parseFloat(num)) && !isNaN(num)){ // parseFloat приводит к числу строку (в данном случае лучше, чем parseInt, ибо может распарсить и дробное число)
if(number === null || num > number) number = num; // Если ещё нет максимального числа или новое больше - пишем его
nums.push(num); // Для наглядности: сохраняем введённые числа
}
}while(justDoIt);
if(nums.length > 0){
console.info(`Вы ввели ряд чисел: ${nums.join(', ')}`);
console.info(`Самое большое число, введённое Вами: ${number}`);
}else{
console.info('Вы не ввели чисел!');
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет! Вообщем простой гамбургер, но делаю первый раз не судите строго)Все норм везде кроме устройств Apple
Скажите как развить практические навыки именно в JavaScript? Теоретические знания я получил а как получить практические навыки в JavaScript, что бы чувствовать...
доброго всем! Хочу if реализовать в одной строке переменная больше одного значения и меньше другого, примерно так:
Знатоки JS у меня к Вам вопрос, нашел исходник проверки формы обратной связи, решил добавить своё значение в него, но что-то пошло не так, ошибка