检查数组中是否已存在单词

时间:2017-04-21 09:12:55

标签: javascript arrays

我正在尝试检查输入的单词是否已经在我的数组中。例如,如果有人多次输入'cat',则会显示错误消息,说“已经输入了cat”。我尝试了几种不同的代码组合,但我做的一切似乎都没有用。 findword函数是我到目前为止所拥有的。有人可以看看我的代码并解释为什么它不起作用并提供可能的修复。

另一方面,为什么输入字段留空时为什么不弹出“word:empty”消息?

<body>
<input type="text" id=input></input>
<button onclick="addword()" class="button" type = "button">Add word</button><br><br>
<button onclick="start()" class="button" type = "button">Process word</button><br><br>
<p id="ErrorOutput"></p>
<p id="output"></p>
<p id="nameExists"></p>
</body>

var array = [];
return = document.getElementById("input").value;
function start() {
  var word = "word List";
  var i = array.length

  if (word.trim() === "") {
    word = "word: Empty"

  }
  document.getElementById('ErrorOutput').innerHTML = word
  while (i--) {
    document.getElementById('output').innerHTML = array[i] + "<br/>" +     document.getElementById('output').innerHTML;
  }

  var longestWord = {
    longword: '',len: 0};

  array.forEach(w => {
    if (longestWord.len < w.length) {
      longestWord.text = w;
      longestWord.len = w.length;
    }
  });

  document.getElementById('ErrorOutput').innerHTML = "The longest name in the array is " + longestWord.len + " characters";

}

function addword() {

  return = document.getElementById('input').value;
  array.push(return);


}

function findword() {
  var nameExists = array.indexOf(
      return) < 0 ?
    'The number ' +
    return +' does not exist in the array': 'The number ' +
      return +' exists in the array'

  document.getElementById('nameExists').textContent = nameExists
} 

1 个答案:

答案 0 :(得分:0)

您可以使用array.indexOf(word)(针对您的情况的命令)查找单词的位置。

如果位置为-1,则单词不在数组中。

More information on W3