Показать сообщение отдельно
  #1 (permalink)  
Старый 23.02.2014, 15:41
Новичок на форуме
Отправить личное сообщение для opilune Посмотреть профиль Найти все сообщения от opilune
 
Регистрация: 23.02.2014
Сообщений: 3

Максимальное количество повторов в строке.
Есть код, который удаляет повторяющиеся слова в строке., но вот сделать чтобы количество этих повторов вводилось с клавиатуры не получается. Сейчас вводится в string3 строка, переводится в массив, редактируется с помощью Go(); и возвращается в string4

Пример:
мама мыла раму мама
Результат:
мама мыла раму

Необходимо, ввести максимальное количество повторов maxrepeat = 3

Пример:
мама мыла раму мама мама мама
Результат:
мама мама мама мыла раму

Подскажите, в чем может быть проблема.

<script> 
function Go(origArr)    			//название функции, принимает параметр (origArr)
    {
        var newArr = [];							//будущий массив, с новыми значениями
        
        var origLength = origArr.length;			//оригинальная длина, длина массива 
        var found = false, i, j, n, s = false;					//совпадение = ложь

        for (i = 0; i < origLength; i++)			//нач. значение = 0, цикл до тех пор пока i< длины массива, i++
        {
            found = false;							//совпадение = ложь
			
            for (j = 0; j < newArr.length; j++)		//нач. значение j=0, для формирования нового массива, до тех пор пока j < длины нового массива
            {
                if (origArr[i] == newArr[j])		//проверяем равенсто оригинального массива, с новым массивом
                {									// ==== полное равенство, по типу и ..
                    found = true;					//совпрадение = правда
					s = true;
                    break;							//заканчиваем цикл
                }

            }
            if (!found)								//если нет совпадений
            {
                newArr.push(origArr[i]);			// в новый массив, заносим элемент orrigArr
			
            }    
	else
        for(n = 0;n<maxrepeat;n++)
              {
			newArr.push(origArr[i]);	
              }
}
        
        return newArr;
        
    }
    

	function newstring()
{	
	var tags=document.getElementById('string3').value;
	var maxrepeat=document.getElementById('string2').value;
		eval(maxrepeat);
	tags = (tags.toLowerCase());

	var re = /\s+/gi 
	var tagList = tags.split(re);


    tagList = Go(tagList);

	tagList = tagList.join(' ');   // 1-2-3-4
	string4.value = tagList;
	
}</script>
<span>Maxrepeat:</span><input type="text" id='string2' size='10' name="string2"> <br><br>
<span>Введите строку:</span><input type="text" id='string3' size='100' name="string3"> <br><br>

	  <input type='button' value='Удалить повторяющиеся слова' onclick='newstring();' /><br><br>
	  
 <span>Обработанная строка</span> <input type="text" id='string4' size='100' name="string4" readonly>
Ответить с цитированием