Javascript 使用用户输入搜索数组

Javascript 使用用户输入搜索数组,javascript,arrays,search,Javascript,Arrays,Search,我希望能够使用用户输入的输入搜索数组。因此,例如,如果用户在输入字段中输入“18”,则会显示“未找到值”或“找到值”,具体取决于数字18是否在数组中 这就是我目前所拥有的 var search = document.getElementById("search"); var arr = [18,23,20,17,21,18,22,19,18,20]; function beginhere() { var input = document.getElementById("Input").v

我希望能够使用用户输入的输入搜索数组。因此,例如,如果用户在输入字段中输入“18”,则会显示“未找到值”或“找到值”,具体取决于数字18是否在数组中

这就是我目前所拥有的

var search = document.getElementById("search");
var arr = [18,23,20,17,21,18,22,19,18,20];

function beginhere() {
   var input = document.getElementById("Input").value;

   for (i=0; i<arr.length; i++){
      if (arr[i] == Input) {
         alert(arr[i]);
      } else {
         alert("Value not found");
      }
   }
};
var search=document.getElementById(“search”);
var arr=[18,23,20,17,21,18,22,19,18,20];
函数beginhere(){
var输入=document.getElementById(“输入”).value;

对于(i=0;i您的错误是
Input
中区分大小写的
i

 if (arr[i] == Input) {
应该是

 if (arr[i] == input) {
然后你真的不需要
else
部分。只需在循环之后编写not found警报,并在if中编写return语句

function beginhere() {
   var input = document.getElementById("Input").value;

   for (i=0; i<arr.length; i++){
      if (arr[i] == input) {
         alert(arr[i]); 
         return;
      }
   }
   alert("Value not found");
};

我已经重构了你的
if
条件,因为现在它会在
for
循环的每个周期中对结果发出警报。如果循环在数组中找到了给定的数字,则记录该数字并返回函数(不再需要保持循环活动)。如果没有,则将该值记录到控制台

var-arr=[18,23,20,17,21,18,22,19,18,20];
函数beginhere(){
var输入=document.getElementById(“输入”).value;
对于(i=0;i
点击
您有一些问题:

  • 在函数内部移动
    search
    声明和初始化,因为您需要的是实际值,而不是开始时的值

  • 通过在搜索值前面添加一个
    加号
    ,将搜索值转换为一个数字。这将使用将值(字符串或数字)转换为数字

  • 使用
    搜索进行测试

  • 如果找到
    搜索
    ,则退出功能

  • 如果循环后未找到,则仅显示一条消息

var-arr=[18,23,20,17,21,18,22,19,18,20];
函数beginhere(){
var search=+document.getElementById(“search”).value,//需要转换为整数
i、 //缺少声明
对于(i=0;i

javascript区分大小写
function beginhere() {
   var input = document.getElementById("Input").value;

     if(arr.indexOf(parseInt(input)) != -1) {
          alert(input); 
          return;
      }
   alert("Value not found");
};