В листинге 1 есть код, а в листинге 2 есть функция. Оба фрагмента находятся в одном файле, и фрагмент из листинга 1 хорошо выполняет другие функции, как только функция из листинга 2 не будет работать.Если вы копируете весь фрагмент в функцию, все работает, но вы хотите сделать это проще.Как я могу вызвать часть кода в функции?
листинг 1
var get_number = obj.Price.Itog;
var get_сurrency = obj.Currency.symbol;
function declOfNum(get_number, titles) {
return titles[(get_number%10==1 && get_number%100!=11) ? 0 : get_number%10>=2 && get_number%10<=4 && (get_number%100<10 || get_number%100>=20) ? 1 : 2]; //v3
}
if (get_сurrency == 'грн') {
var final_currency = declOfNum(get_number, ['грИвна', 'грИвны', 'грИвен']);
}
else if (get_сurrency == 'сом') {
var final_currency = declOfNum(get_number, ['сом', 'сома', 'сомов']);
}
else if (get_сurrency == 'тг') {
var final_currency = 'тенгЕ';
}
else {
var final_currency = declOfNum(get_number, ['рУбль', 'рублЯ', 'рублЕй']);
}
листинг 2
function GenTextPriceHour(obj)
{
var t = '';
var coeff;
if (obj.Tariff.tunes.C_PRICE_FACTOR == null) {
coeff = 1;
}else {coeff = obj.Tariff.tunes.C_PRICE_FACTOR;
}
if(obj)
{
if (obj.Price.Discount) {
t = t + getText(obj.Language.code,'PriceWithDiscountHour',[Round(obj.Price.Itog), final_currency]) + ' ';
} else {
t = t + getText(obj.Language.code,'PriceNoDiscountHour',[Round(obj.Price.Itog), final_currency]) + ' ';
}
}
return t;
}