Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.06.2022, 11:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

NovichokJS,

const splitText = (str, len = 10) => {
            if (typeof str !== 'string') {
                return null;
            }
            let txt = '';
            for (let i = 0; i < str.length; i++) {
                let k = i % len, e = str[i];
                txt += k == 0 ? e.toUpperCase() : k == len - 1 ? `${e}\n` : e
            }
            return txt;
        }
        console.log(splitText('abcdefghijklmnop', 4));
        /*  Abcd
            Efgh
            Ijkl
            Mnop
        */
Ответить с цитированием
  #12 (permalink)  
Старый 03.06.2022, 12:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,230

рони, по одному символу читать строку - моветон...
Ответить с цитированием
  #13 (permalink)  
Старый 03.06.2022, 12:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

ksa,
куда спешить?!
Ответить с цитированием
  #14 (permalink)  
Старый 03.06.2022, 12:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,230

рони, я тут собеседования провожу с кандидатами... Упражнения им разные даю...
Проще чем вот эта задачка.
И они почти всегда делают "перебор строки посимвольно". А я их критикую.
Ответить с цитированием
  #15 (permalink)  
Старый 03.06.2022, 12:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

ksa,
match тоже можно "покритиковать", если строка будет пустая или два символа?
Ответить с цитированием
  #16 (permalink)  
Старый 03.06.2022, 12:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,230

Сообщение от рони
match тоже можно "покритиковать"
Разумеется.
Я в некоторых упражнениях указываю - без регулярок.

Ведь результат "нарезкой" по len символов отработает быстрее.

Сообщение от рони
если строка будет пустая или два символа?
Там регулярка будет чуть иначе...
function splitText(txt, len = 10){
	txt = txt.match(new RegExp(`.{0,${len}}`,'g'))
	txt = txt.map(el => el === '' ? '' : el[0].toUpperCase() + el.slice(1))
	if (txt[txt.length -1] === '') txt.pop()
	return txt.join('\n')
}
alert(splitText('abcdefghijklmnop', 4))
alert(splitText('ab', 4))
alert(splitText('', 4))
Ответить с цитированием
  #17 (permalink)  
Старый 03.06.2022, 12:59
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

усложнил себе задачу и хочу чтобы последняя подстрока дополнялась точками если не хватает по кол-ву символам, таким образом:

console.log(splitText('abcdefghijklmn', 4));

// Output:

/*  Abcd
    Efgh
    Ijkl
    Mn..
*/


Как сделать такое можно?

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

куда добавить в действие переменную dot?

const splitString = (str, len = 10) => {
    if (typeof str !== 'string') { return null; }
    let arr = [];
    let startPos = 0;
    let dot = '.'

    while (startPos < str.length) {

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

        arr.push(newStr[0].toUpperCase() + newStr.slice(1));
        startPos += len;
    }
    return arr.join('\n');
}
Ответить с цитированием
  #19 (permalink)  
Старый 03.06.2022, 13:17
Аспирант
Отправить личное сообщение для Дмитрий Луценко Посмотреть профиль Найти все сообщения от Дмитрий Луценко
 
Регистрация: 24.05.2022
Сообщений: 36

Проверьте длину подстроки, записанной в newStr, если она меньше положенного, добавьте точки
Ответить с цитированием
  #20 (permalink)  
Старый 03.06.2022, 13:18
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от Дмитрий Луценко Посмотреть сообщение
Проверьте длину подстроки, записанной в newStr, если она меньше положенного, добавьте точки
Спасибо, пробую!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько сценариев одной функцией 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