Kategorie
Bez kategorii

Odmiana liczebników w JavaScript

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(' ');
};

Użycie:

num(wartość, ["zero elementów", "jeden element", "dwa elementy"], [true = pominięcie wartości na wyjściu]);

Albo bardziej w "życiowej" postaci:

num(123, ["osób", "osoba", "osoby"]);==> "123 osoby"

W odpowiedzi na “Odmiana liczebników w JavaScript”

Leave a Reply