9.3 KiB
title, localeTitle
| title | localeTitle |
|---|---|
| Truncate a String | Усекать строку |
Не забудьте использовать Read-Search-Ask если вы застряли. Попробуйте подключить программу
и напишите свой собственный код 
Проблема Объяснение:
Нам нужно уменьшить длину строки или усечь ее, если она длиннее заданной максимальной длины и добавить ... до конца. Если это не так долго, мы сохраняем это как есть.
Связанные ссылки
Подсказка: 1
Строки неизменяемы в JavaScript, поэтому нам понадобится новая переменная для хранения усеченной строки.
попытаться решить проблему сейчас
Подсказка: 2
Вам нужно будет использовать метод slice () и указать, с чего начать и где остановиться.
попытаться решить проблему сейчас
Подсказка: 3
Не забывайте, что когда мы усекаем слово, мы также должны учитывать длину, добавленную ...
попытаться решить проблему сейчас
Осторожно, спойлеры!
Решение впереди!
Решение базового кода:
function truncateString(str, num) {
// Clear out that junk in your trunk
if (str.length > num && num > 3) {
return str.slice(0, (num - 3)) + '...';
} else if (str.length > num && num <= 3) {
return str.slice(0, num) + '...';
} else {
return str;
}
}
Код Объяснение:
- Сначала мы начинаем с простого утверждения
ifчтобы определить один из трех результатов ... - Если длина строки больше, чем
numмы хотим усечь, а наша точка усечения не менее трех символов или больше в строке, мы возвращаем срез нашей строки, начиная с символа 0, и заканчиваяnum - 3. Затем мы добавляем наш'...'в конец строки. - Однако, если наша длина строки больше, чем
numноnumнаходится в пределах первых трех символов, нам не нужно считать наши точки символами. Поэтому мы возвращаем ту же строку, что и выше, с одной разницей: конечная точка нашего среза теперь простоnum. - Наконец, если ни одна из приведенных выше ситуаций не верна, это означает, что наша длина строки меньше, чем наша усечка
num. Поэтому мы можем просто вернуть строку.
Расширенное решение для кода:
function truncateString(str, num) {
if (str.length <= num) {
return str;
} else {
return str.slice(0, num > 3 ? num - 3 : num) + '...';
}
}
Код Объяснение:
-
Сначала нам нужен оператор if, чтобы проверить, прошла ли длина полной строки, поскольку первый аргумент уже вписывается в ограничение размера, переданное в качестве второго аргумента. Если это так, мы можем просто вернуть строку, которая была передана.
if (str.length <= num) return str;
-
Если наш оператор
ifвыше не работает, мы переходим кelse, где мы собираемся вернуть «срез» строки. Метод slice извлекает секцию строки и возвращает новую строку. Здесь мы передаем 0 как отправную точку для нашего среза. Чтобы определить конечную точку, мы используем тернарный оператор:num > 3 ? num - 3 : num. В нашем тройном, еслиnumбольше 3, мы должны учитывать три точки по нашей общей длине, и, таким образом, мы заканчиваем наш срез наnum-3. Если num меньше или равно 3, наш срез получает конечную переменную толькоnum. Наконец,'...'добавляется к концу нашей новой строки и возвращается.} else { return str.slice (0, num> 3? num - 3: num) + '...'; }
-
ПРИМЕЧАНИЕ. Чтобы понять приведенный выше код, вам нужно понять, как работает Тернарный оператор. Тернарный оператор часто используется как ярлык для оператора
ifи следует за этим форматом:condition ? expr1 : expr2. Еслиconditionпринимает значение true, оператор возвращает значениеexpr1. В противном случае он возвращает значениеexpr2.
Связанные ссылки
ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше , попробуйте объединить (или заменить) существующее подобное решение.- Добавьте объяснение своего решения.
- Классифицируйте решение в одной из следующих категорий - Basic , Intermediate и Advanced .

- Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое . (
НЕ удаляйте существующие имена пользователей )
Увидеть
![]()
Wiki Challenge Solution TemplateдляWiki Challenge Solution Templateдля справки.


