Coderslang_Master Я считаю задачу выполнил не полностью (хотя Coderslang полностью закрасил пункты задания зеленым). Вот как раз мое упущение, что я не смог написать код чтобы учитывать пробелы (я тоже пытался использовать вложенную переменную (верхний уровень) ссылающуюся на s.slice(0, n-1), эта переменная работает с запятой, но никак не с пробелом (разные типы)). Если подскажете (чтобы в будущем я все учитывал) как это сделать, будет здорово.
Вот мой код:
export const shortenByWords = (s, n) => {
let m = n - 1; // переменная созданная для ситуацию где ',' === n
if (n <= 0) {
return s;
}
else if ((s.length > n) && (s.charAt(n) == ' ')) { // если длина строки больше n и элемент n равен пробелу
return s.slice(0, n) + '...';
}
else if ((s.length > n) && (s.charAt(n) != ' ')) { // если длина строки больше n и элемент n не равен пробелу
if (s.charAt(n) === ',') { // если элемент n равен запятой
let a = s.indexOf(',', m); // переменная которая ищет запятую стартуя поиск с индекса элемента n-1 (глобальная переменная m)
return s.slice(0, a) + '...'; // обрезаем вместе с запятой
}
else {
let c = s.indexOf(' ', n); // в остальных случаях переменная ищет пробел стартуя от значения n
return s.slice(0, c) + '...'; // обрезаем с первого пробела после n
}
}
else {
return s;
}
};