@lexstile

Как заменить одинаковые символы в строке?

Есть код:
function PasGen(chars,length)
{
var res="";
var r,i,resLen;
  for (i=1;i<=length;i++)
    {
		r=Math.floor(Math.random()*chars.length);
		res=res+chars.substring(r,r+1);
		resLen = res.length;
/* пробую перезапускать цикл*/
		if (res.charAt(resLen-2) == res.charAt(resLen-1)){
		  continue;
		}
		
    }   
return res;

}

Так как он берет случайное число, может получиться так, что друг за другом будут идти одинаковые символы.
Нужно исключить такую возможность.
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Сделаем совсем просто - если новое значение совпало с предыдущим, будем добавлять единицу:

function pasGen(chars, length) {
  let prev = null;
  return Array
    .from({ length }, () => {
      const i = Math.random() * chars.length | 0;
      return chars[prev = (i + (i === prev)) % chars.length];
    })
    .join('');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы