Задать вопрос

Как найти и сделать первую букву заглавной самого короткого слова в массиве?

Как найти и сделать первую букву заглавной самого короткого слова в массиве? Есть такая реализация, которая делает заглавной буквой самое длинное слово в массиве, но как сделать для самого короткого слова?
class MyStr {
    ucMinWord(string) {
        let i=0;
        const wordArr=string.split(" ");
        const minString=string.substring(string.lastIndexOf(" "));
        for (i in wordArr)
        {
            if (wordArr[i].length>minString.length)
            {
                wordArr[i] = wordArr[i][0].toUpperCase() + wordArr[i].slice(1);
            }
        }
        return wordArr.join(' ')
    }
}
const app = new MyStr()
console.log(app.ucMinWord('deveveloper dev code'))
  • Вопрос задан
  • 154 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Если надо изменить одно слово с минимальной длиной:

const index = arr.reduce((min, n, i, a) => a[min]?.length <= n.length ? min : i, -1);
if (index !== -1) {
  arr[index] = arr[index][0].toUpperCase() + arr[index].slice(1);
}

Если слов с минимальной длиной может быть несколько и надо изменить все:

const [ indexes ] = arr.reduce((min, n, i) => (
  n.length < min[1] && (min = [ [], n.length ]),
  n.length === min[1] && min[0].push(i),
  min
), [ [], Infinity ]);

indexes.forEach(n => arr[n] = arr[n].replace(/./, m => m.toUpperCase()));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
08 февр. 2025, в 10:23
2000 руб./в час
08 февр. 2025, в 08:18
300000 руб./за проект
08 февр. 2025, в 06:53
1000 руб./за проект