1

Помогите,пожалуйста, решить проблему. ошибка в функции сортировке по длине. Необходимо проверить является ли введенное в текстовое поле слово, совокупностью из элементов массива. Например, ввели слово "test1a", выводим сообщение "Слово существует", если ввели "test2a", то не существует.

var arr = ['test', 'test1', 'a'];
array.innerHTML = arr;

function wordArray(){ var x = document.getElementById('newArray'); var str = document.getElementById("inputWord").value; var newArr = x.sort(function(a,b){ return b.length - a.length; }); var dpStr = str.slice(); newArr.forEach(function(value){ return dpStr.replace(value, ""); }); if (!dpStr){ alert("Слово "+ str + "существует"); } else { alert("Слово "+ str + " не существует"); } }

<div id="array"></div>
<div id="newArray"></div>

<div class="checkWord">
       <form>
        <input type="text" id="inputWord">
        <input type="button" value="Проверить" onclick="wordArray()">
    </form>
</div>
  • не надо задавать один и тот же вопрос много раз. В ответе к прошлому вопросу есть рабочий пример. Обрати внимание на то, что конкретно там сортируется, и что пытаешься сортировать ты – Grundy Mar 11 '18 at 10:46

1 Answers1

-1

В двух словах, алгоритм такой:

word = "..."
rests = [word]
dict = [...]

while rests.length != 0:
  for r in rests:
    if r.lenght == 0:
      return true

    for i in dict:
      if r.startsWith(i):
        rests.push(r.replaceFirst(i))

    rests.erase(r) 

return false
Rennorb
  • 1,526