Javascript.RU

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

if (newStr.length < len) {
            newStr += dot;
        }

Output: 

Abcd
Efgh
Ijkl
Mn.


добавляет одну точку, что и логично. Но вот как сделать чтоб добавляло нужное кол-во точек?
Ответить с цитированием
  #22 (permalink)  
Старый 03.06.2022, 13:23
Аспирант
Отправить личное сообщение для Дмитрий Луценко Посмотреть профиль Найти все сообщения от Дмитрий Луценко
 
Регистрация: 24.05.2022
Сообщений: 36

Сообщение от NovichokJS Посмотреть сообщение
Спасибо, пробую!
На заметку:

let str = "44"

str = str.repeat(4);
console.log(str);
//44444444
Ответить с цитированием
  #23 (permalink)  
Старый 03.06.2022, 13:25
Аспирант
Отправить личное сообщение для Дмитрий Луценко Посмотреть профиль Найти все сообщения от Дмитрий Луценко
 
Регистрация: 24.05.2022
Сообщений: 36

Сообщение от NovichokJS Посмотреть сообщение
if (newStr.length < len) {
            newStr += dot;
        }

Output: 

Abcd
Efgh
Ijkl
Mn.


добавляет одну точку, что и логично. Но вот как сделать чтоб добавляло нужное кол-во точек?
Вы мыслите почти верно)
Ответить с цитированием
  #24 (permalink)  
Старый 03.06.2022, 13:32
Аспирант
Отправить личное сообщение для Дмитрий Луценко Посмотреть профиль Найти все сообщения от Дмитрий Луценко
 
Регистрация: 24.05.2022
Сообщений: 36

Давайте подскажу решение способом посимвольного добавления:

Создаю переменную для хранения разницы между текущим размером newStr и len.

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

Сообщение от Дмитрий Луценко Посмотреть сообщение
Давайте подскажу решение способом посимвольного добавления:

Создаю переменную для хранения разницы между текущим размером newStr и len.

Пока переменная не равна 0, я буду добавлять к newStr нужный символ. мою переменную я затем уменьшаю на 1.
получилось по ходу

if (newStr.length < len) {
            dot = dot.repeat(len - newStr.length);
            newStr += dot;
        }


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

Сообщение от NovichokJS Посмотреть сообщение
получилось по ходу

if (newStr.length < len) {
            dot = dot.repeat(len - newStr.length);
            newStr += dot;
        }


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

Сообщение от NovichokJS
if (newStr.length < len) {
let n = str.length % len;
str = str.padEnd(n + str.length, dot);



const splitText = (str, len = 10, dot = '*') => {
            if (typeof str !== 'string') {
                return null;
            }
            let n = str.length % len;
            str = str.padEnd(n + str.length, dot);

            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('abcdefghijklmn', 4));
        /*  Abcd
            Efgh
            Ijkl
            Mn**
        */
Ответить с цитированием
  #28 (permalink)  
Старый 03.06.2022, 15:06
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
let n = str.length % len;
str = str.padEnd(n + str.length, dot);



const splitText = (str, len = 10, dot = '*') => {
            if (typeof str !== 'string') {
                return null;
            }
            let n = str.length % len;
            str = str.padEnd(n + str.length, dot);

            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('abcdefghijklmn', 4));
        /*  Abcd
            Efgh
            Ijkl
            Mn**
        */
для меня пока ваш код сложноват))
Ответить с цитированием
Ответ



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

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


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