qwermjk, очевидная оптимизация:
function wordend(num, words){
return words[ ((num=Math.abs(num%100)) > 10 && num < 15 || (num%=10) > 4 || num === 0) ? 2 : num === 1 ? 0 : 1 ];
}
Но тут ещё есть куда оптимизировать(напр. последний пункт).)
P.S. Math.abs - модуль - нужен чтобы работало и с отрецательными числами.