Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «грамматика»



Артем Леготин
  • Репутация: 18
  • Сниппеты: 5
  • Ревизии: 0

Склоняет слово в соответствии с числом

var wordCase = function( num, words ) {
	var word = '';
	
	num = Math.abs( num );
    
    if ( num.toString().indexOf( '.' ) > -1 ) {
        word = words[ 2 ];
    } else { 
        word = (
            num % 10 === 1 && num % 100 !== 11 
                ? words[ 1 ]
                : num % 10 >= 2 && num % 10 <= 4 && ( num % 100 < 10 || num % 100 >= 20)  
                    ? words[ 2 ]
                    : words[ 0 ]
        );
    }
    
    return word;
};

/* использование: */

var words = [ 'яблок', 'яблоко', 'яблока' ];// [ 'ноль яблок', 'одно яблоко', 'два яблока' ]

wordCase( 0, words );// яблок
wordCase( 1, words );// яблоко
wordCase( 2, words );// яблока
wordCase( 5, words );// яблок
wordCase( 10, words );// яблок