Javascript,输入字符串并打印所有可能性

时间:2018-02-19 17:10:41

标签: javascript

我一直在寻找我们的网络,包括在这里寻找一个解决这个项目的方法,我本周要做作业。为了回答你的问题,教授给了我们一本与家庭作业无关的书,所以我的教科书几乎没用。我对Javascript很新,甚至不知道从哪个项目开始。

项目:"编写一个JavaScript函数,生成输入单词的所有组合。"

示例:" dog"将打印:狗dgo god gdo odg ogd

我有点写出了我需要代码制作的步骤:

  1. 向用户询问字符串。 (我想使用某种输入框但使用IDK。)
  2. 将字符串传递给函数。
  3. 函数将字符串分解为字母。
  4. 将字母存储在数组中。
  5. 查找存储的数组字母的所有组合。
  6. 在内部HTML中打印组合。
  7. 就像我说我对JS很新,所以请解释任何答案,随时提出问题,我会尽快回答。

    我试过的代码:

    
    
     function combo() {
        var string = prompt("Please Enter a String", "Dog");
        var strArr = string.split("");
        var temp = "";
        for (var i = 0; i < strArr.length; i++) {
            temp = strArr[i];
            console.log(temp);
            for (var j = i + 1; j < strArr.length; j++) {
                temp += strArr[j];
                console.log(temp);
            }
        }
    &#13;
       
    
        <button onclick="combo()">Click Me!</button>
       <p id="demo"></p>
    &#13;
    &#13;
    &#13;

    就像我说的那样,大部分都是我在网上找到的,因为我不完全理解这些概念。

    编辑:有没有人举例说明我如何将用户的输入发送到函数?

1 个答案:

答案 0 :(得分:0)

使用此CodeReview question中的答案,以下内容可以正常使用:

function generateAnagrams(word) 
{
  if (word.length < 2) 
  {
    return [word];
  } 


  var anagrams = [];
  var before, focus, after, shortWord, subAnagrams, newEntry;

  for (var i = 0; i < word.length; i++) 
  {
    before = word.slice(0, i);
    focus = word[i];
    after = word.slice(i + 1, word.length + 1);
    shortWord = before + after;
    subAnagrams = generateAnagrams(shortWord);

    for (var j = 0; j < subAnagrams.length; j++)
    {
      newEntry = focus + subAnagrams[j];
      anagrams.push(newEntry);
    }
  }
  return anagrams;
}

document.getElementById('btn_go').onclick = function()
{
  var words = generateAnagrams(document.getElementById('input_word').value);
  document.getElementById('output').value = words.join("\n");
}
input, 
textarea {
  display: block;
  margin-bottom: 20px;
  width:60%;
}

textarea {
  height: 200px;
}
<input id="input_word" placeholder="Input your word here" />
<textarea id="output"></textarea>
<button id="btn_go">
   Go!
</button>