Публикация
Склонение существительных после числительных средствами JScript
18 июля 2012 21:04
Простенькая функция, с помощью которой можно получить более читаемые сообщения с числами.
function PluralForm (n, FormArray) {
if (n%100 > 10 && n%100 20) return FormArray[2];
switch (n % 10) {
case 1:return FormArray[0];
case 2:
case 3:
case 4:return FormArray[1];
default:return FormArray[2];
}
}
if (n%100 > 10 && n%100 20) return FormArray[2];
switch (n % 10) {
case 1:return FormArray[0];
case 2:
case 3:
case 4:return FormArray[1];
default:return FormArray[2];
}
}
Тестовый пример:
function Main() {
var Arr =new Array('кочерга', 'кочерги', 'кочерёг');
for (var i = 1; i = 1000; i++) {
Log.Write(0, i + ' ' + PluralForm (i, Arr));
}
}
var Arr =new Array('кочерга', 'кочерги', 'кочерёг');
for (var i = 1; i = 1000; i++) {
Log.Write(0, i + ' ' + PluralForm (i, Arr));
}
}
Фрагмент выводимых результатов (нажимаем F9 и смотрим журнал по Ctrl+Alt+L):
[12.07.18 23.48.08.418] 1 кочерга
[12.07.18 23.48.08.418] 2 кочерги
[12.07.18 23.48.08.418] 3 кочерги
[12.07.18 23.48.08.418] 4 кочерги
[12.07.18 23.48.08.418] 5 кочерёг
[12.07.18 23.48.08.418] 6 кочерёг
[12.07.18 23.48.08.418] 7 кочерёг
[12.07.18 23.48.08.418] 8 кочерёг
[12.07.18 23.48.08.418] 9 кочерёг
[12.07.18 23.48.08.418] 10 кочерёг
[12.07.18 23.48.08.418] 2 кочерги
[12.07.18 23.48.08.418] 3 кочерги
[12.07.18 23.48.08.418] 4 кочерги
[12.07.18 23.48.08.418] 5 кочерёг
[12.07.18 23.48.08.418] 6 кочерёг
[12.07.18 23.48.08.418] 7 кочерёг
[12.07.18 23.48.08.418] 8 кочерёг
[12.07.18 23.48.08.418] 9 кочерёг
[12.07.18 23.48.08.418] 10 кочерёг
В идеале стоит для 0 предусмотреть отдельную логику, чтобы не писать "0 кочерёг", а сообщить, скажем, что "Ни одной кочерги нет".
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать