Задача на 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, время: 02:59. |