Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.06.2022, 10:09
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Получить несколько подстрок из одной строки
Не пойму почему не получаю нужный результат. Выводит только первые 4 символа. Помогите пожста.

const splitText = (str, len) => {
    const strArr = [];

    if (typeof str !== 'string') { return null; }

    let chunk = str.substring(0, len);

    strArr.push(chunk[0].toUpperCase() + chunk.slice(1));

    return strArr.join('\n');
}

console.log(splitText('abcdefghijklmnop', 4));
/*  Abcd
    Efgh
    Ijkl
    Mnop
*/
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2022, 10:26
Аспирант
Отправить личное сообщение для Дмитрий Луценко Посмотреть профиль Найти все сообщения от Дмитрий Луценко
 
Регистрация: 24.05.2022
Сообщений: 36

Здравствуйте.

Ваша проблема заключается в том, что Вы не двигаете индекс для слайсинга.
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2022, 10:26
Аспирант
Отправить личное сообщение для Дмитрий Луценко Посмотреть профиль Найти все сообщения от Дмитрий Луценко
 
Регистрация: 24.05.2022
Сообщений: 36

const splitText = (str, len) => {
    const strArr = [];
    let i = 0;
    if (typeof str !== 'string') { return null; }

    while (i < str.length) {

        let chunk = str.substring(i, i + len);

        strArr.push(chunk[0].toUpperCase() + chunk.slice(1));

        strArr.join('\n');
        i += (len);
    }
    return strArr;
    
}

console.log(splitText('abcdefghijklmnop', 4));
/*  Abcd
    Efgh
    Ijkl
    Mnop
*/
Ответить с цитированием
  #4 (permalink)  
Старый 03.06.2022, 10:40
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

я понял, спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2022, 10:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Дмитрий Луценко,
пост #3 что делает строка 12?
Ответить с цитированием
  #6 (permalink)  
Старый 03.06.2022, 10:53
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

я немного уже преобразовал:

const splitText = (str, len) => {
    const strArr = [];
    let startPos = 0;
    if (typeof str !== 'string') { return null; }

    while (startPos < str.length) {

        let chunk = str.substring(startPos, startPos + len);

        strArr.push(chunk[0].toUpperCase() + chunk.slice(1));


        startPos += len;
    }
    return strArr.join('\n');

}
Ответить с цитированием
  #7 (permalink)  
Старый 03.06.2022, 10:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от NovichokJS
Не пойму почему не получаю нужный результат. Выводит только первые 4 символа.
Так ты так и написал...
Сообщение от NovichokJS
let chunk = str.substring(0, len);
Ответить с цитированием
  #8 (permalink)  
Старый 03.06.2022, 10:54
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

есть еще правда одно условие : функция должна делить на подстроки длиной 10 символов, если не задан второй аргумент.
Как это сделать корректно?
Ответить с цитированием
  #9 (permalink)  
Старый 03.06.2022, 10:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

NovichokJS, предложу такой вариант...
function splitText(txt, len = 10){
	txt = txt.match(new RegExp(`.{${len}}`,'g'))
	txt = txt.map(el => el[0].toUpperCase() + el.slice(1))
	return txt.join('\n')
}
alert(splitText('abcdefghijklmnop', 4))

Последний раз редактировалось ksa, 03.06.2022 в 11:06.
Ответить с цитированием
  #10 (permalink)  
Старый 03.06.2022, 11:14
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

ksa, большое спасибо вам!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько сценариев одной функцией Marker Events/DOM/Window 19 19.01.2013 00:40
Несколько версий JQuery UI на одной странице. Casufi jQuery 2 10.11.2012 15:24
Ext.util.Cookies.set(...) - несколько переменных в одной куки. potkin ExtJS 4 07.05.2012 10:43
Несколько созданных элементов располагаются в одной строке. Как этого избежать? Hold Events/DOM/Window 1 21.01.2011 23:52
2-е бегущие строки на одной странице DjTarik Общие вопросы Javascript 3 27.09.2010 16:30