Prosta funkcja w JS do odmiany liczebników. Do tej pory najczęściej korzystałem z wersji PHPowej, ale zaszła konieczność użycia również po stronie klienta…
var num = function (value, numerals, wovalue) {
var t0 = value % 10,
t1 = value % 100,
vo = [];
if (wovalue !== true)
vo.push(value);
if (value === 1 && numerals[1])
vo.push(numerals[1]);
else if ((value == 0 || (t0 >= 0 && t0 <= 1) || (t0 >= 5 && t0 <= 9) || (t1 > 10 && t1 < 20)) && numerals[0])
vo.push(numerals[0]);
else if (((t1 < 10 || t1 > 20) && t0 >= 2 && t0 <= 4) && numerals[2])
vo.push(numerals[2]);
return vo.join(' ');
};
Code language: JavaScript (javascript)
Użycie:
num(wartość, ["zero elementów", "jeden element", "dwa elementy"], [true = pominięcie wartości na wyjściu]);
Code language: JavaScript (javascript)
Albo bardziej w „życiowej” postaci:
num(123, ["osób", "osoba", "osoby"]); // "123 osoby"
Code language: JavaScript (javascript)
Leave a Reply