Простенькая функция, с помощью которой можно получить более читаемые сообщения с числами.

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];
        }
}

Тестовый пример:

function Main() {
        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 кочерёг

В идеале стоит для 0 предусмотреть отдельную логику, чтобы не писать "0 кочерёг", а сообщить, скажем, что "Ни одной кочерги нет".

Нравится

Поделиться

0 комментариев
Показать все комментарии