Задача на javascript
Помогите пожалуйста разобраться с домашним заданием.
Нужно написать программу, которая исходя из суммы покупок пользователя, определяет его статус и сумму, на которую ему нужно совершить покупок до следующего статуса: пользователь должен ввести сумму своих покупок Статусы: 0–1000 –без статуса 1000 –10_000 –бронзовый 10_000 –50_000 –серебреный 50_000 –100_000–золотой 100_000 –500_000 -платиновый |
а если выше 500 000 что тогда? 'платиновый' или 'вы ввели неверную сумму'?
|
Выше 500 000 тогда остается "платиновый"
|
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} шекелей.`
: `!`
)
);
:D |
<!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>
|
Спасибо большое
|
Julia_1313, а если препод попросит вас объяснить всю эту хренатень? Все эти стрелочки туда-сюда, чёрточки... :)
|
Постараюсь как следует разобраться, прежде чем придется преподу объяснять:)
|
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('Неверный ввод!');
|
Спасибо, так действительно понятнее
|
| Часовой пояс GMT +3, время: 20:37. |