22.01.2018, 22:53
|
Новичок на форуме
|
|
Регистрация: 22.01.2018
Сообщений: 5
|
|
Задача на javascript
Помогите пожалуйста разобраться с домашним заданием.
Нужно написать программу, которая исходя из суммы покупок пользователя, определяет его статус и сумму, на которую ему нужно совершить покупок до следующего статуса: пользователь должен ввести сумму своих покупок
Статусы:
0–1000 –без статуса
1000 –10_000 –бронзовый
10_000 –50_000 –серебреный
50_000 –100_000–золотой
100_000 –500_000 -платиновый
|
|
22.01.2018, 23:56
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
а если выше 500 000 что тогда? 'платиновый' или 'вы ввели неверную сумму'?
|
|
23.01.2018, 00:05
|
Новичок на форуме
|
|
Регистрация: 22.01.2018
Сообщений: 5
|
|
Выше 500 000 тогда остается "платиновый"
|
|
23.01.2018, 00:12
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,576
|
|
var statuses = [
[1e5, 'платиновый'],
[5e4, 'золотой'],
[1e4, 'серебреный'],
[1e3, 'бронзовый']
], length = statuses.length;
var summ = +prompt('Сумма покупок?', '').replace(/\D/g,'');
var i = statuses.findIndex( ([value]) => value <= summ );
alert(
(
~i
? `У вас ${statuses[i][1]} статус`
: (i = length, `Вы нищеброд`)
) + (
i--
? `, до ${statuses[i][1].replace(/..$/, 'ого')} статуса следует потратить ещё ${statuses[i][0] - summ} шекелей.`
: `!`
)
);
__________________
29375, 35
Последний раз редактировалось Aetae, 23.01.2018 в 00:14.
|
|
23.01.2018, 00:17
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="number" min='0'>Введите сумму покупок<br>
<span id="stat"></span><br>
<span id="nextStat"></span>
<script>
document.querySelector('input').oninput=e=>{
var arr = [[100000,'платиновый'],[50000,'золотой'],[10000,'серебрянный'],[1000,'бронзовый'],[0,'без статуса']],
v = arr.findIndex(el => el[0] <= +e.target.value);
document.querySelector('#stat').textContent = 'Ваш статус: '+arr[v][1];
document.querySelector('#nextStat').textContent = v!=0?'Нужно потратить до следующего статуса: '+(+arr[v-1][0] - e.target.value):'Максимальный статус';
};
</script>
</body>
</html>
|
|
23.01.2018, 00:19
|
Новичок на форуме
|
|
Регистрация: 22.01.2018
Сообщений: 5
|
|
Спасибо большое
|
|
23.01.2018, 00:25
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,576
|
|
Julia_1313, а если препод попросит вас объяснить всю эту хренатень? Все эти стрелочки туда-сюда, чёрточки...
__________________
29375, 35
|
|
23.01.2018, 00:35
|
Новичок на форуме
|
|
Регистрация: 22.01.2018
Сообщений: 5
|
|
Постараюсь как следует разобраться, прежде чем придется преподу объяснять
|
|
23.01.2018, 00:56
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Julia_1313, преподу лучше так решите, будет меньше вопросов
var summ = parseFloat(prompt('Сумма покупок?', ''), 10);
if (summ > 100000) {
alert('Ваш статус платиновый! жизнь удалась!');
}
else if (summ >= 50000&& summ < 100000) {
alert('Ваш статус золотой! До статуса платиновый вам надо потратить '+(100000-summ));
}
else if (summ >= 10000&& summ < 50000) {
alert('Ваш статус серебряный! До статуса золотой вам надо потратить '+(50000-summ));
}
else if (summ >= 1000&& summ < 10000) {
alert('Ваш статус бронзовый! До статуса серебряный вам надо потратить '+(10000-summ));
}
else if (summ >= 0&& summ < 1000) {
alert('У вас пока что нет статуса! До статуса бронзовый вам надо потратить '+(1000-summ));
}
else if ( summ < 0) {
alert('Вы должны денег магазину! До статуса бронзовый вам надо потратить '+(1000-summ));
}
else alert('Неверный ввод!');
Последний раз редактировалось j0hnik, 23.01.2018 в 01:02.
|
|
23.01.2018, 01:13
|
Новичок на форуме
|
|
Регистрация: 22.01.2018
Сообщений: 5
|
|
Спасибо, так действительно понятнее
|
|
|
|