在数组中进行基本搜索,并使用if和其他搜索



我正在尝试制作基本的搜索功能。如果input.value确实存在于数组警报消息中,则如果不是,请将其推入HTML中的数组and show。我认为我已经完成了大部分工作,但是有一个错误。预先感谢您的帮助。)

<div id="main">
<input id="inputForMyDict">
<button id="ButtonForInputSave" onclick="buttonSave()">Speichern</button>
<p id="demo"></p>
</div>
<script>
var myDict = [];
var buttonSave = function() {
for (var i = 0; i < myDict.length; i++) {
  if (document.getElementById("inputForMyDict").value = myDict[i]) {
    alert("your input is already in your list");
  } else {
    myDict.push(document.getElementById("inputForMyDict").value);
    document.getElementById("demo").innerHTML = myDict;
  }
}

}

在JavaScript中,有两种方法可以进行比较。

  1. 严格的平等操作员 ===严格的平等操作员。
  2. 如果您不确定要比较的值的确切数据类型,则可以使用==进行比较。

线document.getElementById("inputForMyDict").value = myDict[i]需要比较操作员,而不是分配操作员(=)。因此,您需要用=====替换=

所以您的JavaScript代码应该看起来像

var buttonSave = function() {
for (var i = 0; i < myDict.length; i++) {
  if (document.getElementById("inputForMyDict").value == myDict[i]) {
  // If you know exact data type, then use the below line instead and comment the above line  if (document.getElementById("inputForMyDict").value === myDict[i]) {
    alert("your input is already in your list");
  } else {
    myDict.push(document.getElementById("inputForMyDict").value);
    document.getElementById("demo").innerHTML = myDict;
  }
}
}

update1:根据注释提供的澄清,您无需有一个循环就可以检查数组中的元素存在。JavaScript通过indexOf方法在数组上提供了一种方便的方式。索引方法检查数组中存在元素,并返回数组中元素的索引。但是,如果找不到元素,则返回-1。

下面应该有效的完整代码。

<!DOCTYPE html>
<html>
<body>
<div id="main">
<input id="inputForMyDict">
<button id="ButtonForInputSave" onclick="buttonSave()">Speichern</button>
<p id="demo"></p>
</div>
<script>
var myDict = [];
var buttonSave = function() {
//for (var i = 0; i < myDict.length; i++) {
  var valueInTextbox = document.getElementById("inputForMyDict").value;
  if(myDict.indexOf(valueInTextbox) > -1){
    alert("your input is already in your list");
  } else {
    myDict.push(valueInTextbox);
    document.getElementById("demo").innerHTML = myDict;
  }
}
//}
</script>
</body>
</html>

最新更新