Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.02.2019, 21:14
Новичок на форуме
Отправить личное сообщение для Антон789456 Посмотреть профиль Найти все сообщения от Антон789456
 
Регистрация: 01.02.2019
Сообщений: 3

Удлинить строку до необходимого значения
Здравствуйте, опять я маюсь с лабораторной. На этот раз задание такое:

Дана строка, в которой нет начальных и конечных пробелов. Необходимо изменить ее так, чтобы длина строки стала равна заданной длине, больше чем текущая длина строки. Это следует сделать путем вставки между словами дополнительных пробелов. Количество пробелов между от- дельными словами не должно отличаться более чем на один пробел (то есть пробелы добавляются равномерно) Можно считать, что изначально между словами по одному пробелу

Написав код, у меня цикл выполняется бесконечное количество раз и ничего не меняет. Помогите пожалуйста и, если не сложно, укажите, где у меня ошибка)
var str = 'Произвольная строка, которую надо удлиннить';//43 символа
var n = 46;
var i;
var str1;
do  {

  for(i=0; i<str.length; i++){


        if ((str[i] == ' ') && (str.length < n) && (str[i+1] != ' ')){

            str1 = str.substring(0, i+1) + ' ' + str.substring(i);
            
            str = str1;
            i++

    } else break;

  }  

} while (str.length<n);

console.log(str);
Ответить с цитированием
  #2 (permalink)  
Старый 02.02.2019, 23:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Антон789456,

var str = 'Произвольная строка, которую надо удлиннить';//43 символа
var n = 46;
var i = str.length - 1 ;
var up = true;


  for( ; n > str.length; i = (i - 1 + str.length)%str.length){

        if (str[i] == ' ' && up) {
           str = str.substring(0, i) + ' ' + str.substring(i);
           up = false;
        }
        else if (str[i]) up = true ;
  }

 console.log(str, str.length);
Ответить с цитированием
  #3 (permalink)  
Старый 03.02.2019, 01:03
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

еще вариант
function extendString(str, len) {
    var diffStr = len - str.length;
    if (diffStr > 0) {
        var pr = str.match(/ /g).length;
        var intPr = Math.floor(diffStr / pr);
        var modPr = diffStr % pr;
        var newPr = ' ' + ' '.repeat(intPr);
        str = str.replace(/ /g, function () {
            return newPr + (modPr-- > 0 ? " " : "");
        });
    }
    return str;
}

var str = 'Произвольная строка, которую надо удлиннить';
var newStr1 = extendString(str, 46);
console.log(newStr1, newStr1.length);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Input type="time" + JS +Safari (iPhone) dpts Opera, Safari и др. 0 21.09.2016 07:24
Вывод значения температуры в строку Black_Star Общие вопросы Javascript 1 04.08.2016 17:50
скрипт, выводящий значения checkbox в строку через запятую Pincher Javascript под браузер 12 05.10.2012 21:49
Преобразование значения переменной в строку leny Общие вопросы Javascript 3 01.10.2011 22:34
Вывод JS значения в одну строку в HTML velo Общие вопросы Javascript 7 15.12.2009 03:57