Alexanevsky
@Alexanevsky
Любительская web-разработка

Как сжать этот JS?

Здравствуйте!

Есть один скрипт, суть которого в следующем:
1. Со страницы берется курс валюты;
2. По курсу рассчитывается стоимость каждого из четырёх тарифов в разной валюте и вставляется на страницу.

Сейчас код выглядит так:
var rubTariff1 = 777;
var rubTariff2 = 1777;
var rubTariff3 = 2777;
var rubTariff4 = 4777;

var bankUSD = document.getElementById('bank-usd').innerText;
var bankEUR = document.getElementById('bank-eur').innerText;
var bankBYR = document.getElementById('bank-byr').innerText;
var bankUAH = document.getElementById('bank-uah').innerText;
var bankKZT = document.getElementById('bank-kzt').innerText;

document.getElementById('usdTariff1').innerHTML = (rubTariff1/bankUSD).toFixed(2);
document.getElementById('eurTariff1').innerHTML = (rubTariff1/bankEUR).toFixed(2);
document.getElementById('byrTariff1').innerHTML = (rubTariff1/bankBYR).toFixed(0);
document.getElementById('uahTariff1').innerHTML = (rubTariff1/bankUAH).toFixed(1);
document.getElementById('kztTariff1').innerHTML = (rubTariff1/bankKZT).toFixed(0);

document.getElementById('usdTariff2').innerHTML = (rubTariff2/bankUSD).toFixed(2);
document.getElementById('eurTariff2').innerHTML = (rubTariff2/bankEUR).toFixed(2);
document.getElementById('byrTariff2').innerHTML = (rubTariff2/bankBYR).toFixed(0);
document.getElementById('uahTariff2').innerHTML = (rubTariff2/bankUAH).toFixed(1);
document.getElementById('kztTariff2').innerHTML = (rubTariff2/bankKZT).toFixed(0);

document.getElementById('usdTariff3').innerHTML = (rubTariff3/bankUSD).toFixed(2);
document.getElementById('eurTariff3').innerHTML = (rubTariff3/bankEUR).toFixed(2);
document.getElementById('byrTariff3').innerHTML = (rubTariff3/bankBYR).toFixed(0);
document.getElementById('uahTariff3').innerHTML = (rubTariff3/bankUAH).toFixed(1);
document.getElementById('kztTariff3').innerHTML = (rubTariff3/bankKZT).toFixed(0);

document.getElementById('usdTariff4').innerHTML = (rubTariff4/bankUSD).toFixed(2);
document.getElementById('eurTariff4').innerHTML = (rubTariff4/bankEUR).toFixed(2);
document.getElementById('byrTariff4').innerHTML = (rubTariff4/bankBYR).toFixed(0);
document.getElementById('uahTariff4').innerHTML = (rubTariff4/bankUAH).toFixed(1);
document.getElementById('kztTariff4').innerHTML = (rubTariff4/bankKZT).toFixed(0);


...но что-то много для такой простой возможности. Как его написать кратко? Можно на jQuery.

С уважением,
Александр.
  • Вопрос задан
  • 2187 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Power
Используйте коллекции и циклы:
$.each({usd: 2, eur: 2, byr: 0, uah: 1, kzt: 0}, function(currency, precision) {
	var bankCurrency = document.getElementById('bank-' + currency).innerText;
	$.each([777, 1777, 2777, 4777], function(i, tariff) {
		document.getElementById(currency + 'Tariff' + (i + 1)).innerHTML = (tariff / bankCurrency).toFixed(precision);
	});
});
Ответ написан
@asdz
запихните параметры в data атрибуты элементов в которых выводите стоимость тарифов, и потом просто в цикле их обходите и вычисляйте. В дата атрибуты например можно вынести ключи к массивам типа валюты и номера тарифа. Соответственно, типы валют и тарифы держать не в отдельных переменных, а в массивах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы