数组搜索未返回预期结果 - 它不断出现错误

问题描述

目标:我正在尝试制作一个简单的搜索栏,用于在输入字段中搜索邮政编码并将其与数组中的邮政编码相匹配。目标是创建一个函数来识别数组中是否存在邮政编码。如果是,它将返回一个语句,否则它将返回一个不同的语句。

预期结果

  1. 如果在搜索栏中输入的邮政编码与数组中的邮政编码匹配,则表示该区域已提供服务。
  2. 如果在搜索栏中输入的邮政编码在数组中不存在,则表示该区域未提供服务。
  3. 如果用户尝试提交空白输入字段,它会提示输入邮政编码。

实际结果

  1. 如果在搜索栏中输入的邮政编码与数组中的邮政编码匹配,它将说该区域没有服务。
  2. 如果在搜索栏中输入的邮政编码在数组中不存在,则表示该区域未提供服务。
  3. 如果提交空白输入字段,它会提示输入邮政编码。

我的代码

var zip = ["19505","19506","19507","19508","19510","19511","19512","19518","19519","19522","19523","19526","18056","19529","19530","19533","19534","19535","19536","19538","19539","19540","19541","19542","19543","19544","19545","19547","19611","19601","19602","19604","19605","19606","19607","19608","19550","19551","19554","19555","19559","19560","19562","19564","19565","19609","19567","19610"];

function validateSearchBox(){ 
    var input = document.getElementById("search-Box")
    if(input.value.length > 0){ 
        searchResult();
    } else { 
        document.getElementById("search-result").innerHTML = "Please enter a zip code"; 
    }
};


function searchResult(){ 
    var search = document.getElementById("search-Box").value; 
    var index = zip.indexOf("search"); 

    if(index !== -1){ 
        document.getElementById("search-result").innerHTML = "Yes,we do service your area!";
    } else {
            document.getElementById("search-result").innerHTML = "Sorry,we do not service your area!";
        }
};
<div id="search"> 
  <input type ="search" id="search-Box" placeholder="Zip Code" maxlength="5"/> 
  <button onClick="validateSearchBox();" id="search-btn"> Search </button> 
</div>

<p id="search-result" style="font-size: 30px; font-weight: 500px;"> </p>

解决方法

您的意外输出是由于使用带有字符串 indexOf"search" 而不是上一行声明的变量 search 引起的。

,

您的代码正在尝试查找字符串 "search" 而不是变量 search 的索引。以下工作:

function searchResult(){ 
  var search = document.getElementById("search-box").value; 
  var index = zip.indexOf(search); // <--- variable instead of string

  if (index !== -1){ 
    document.getElementById("search-result").innerHTML = "Yes,we do service your area!";
  } else {
    document.getElementById("search-result").innerHTML = "Sorry,we do not service your area!";
  }
};
,

您在 var index = zip.indexOf("search"); 中将“search”作为字符串传递;您必须像这样将搜索作为变量传递。

    var search = document.getElementById("search-box").value; 
    var index = zip.indexOf(search); 

    if(index !== -1){ 
        document.getElementById("search-result").innerHTML = "Yes,we do service your area!";
    } else {
            document.getElementById("search-result").innerHTML = "Sorry,we do not service your area!";
        }
};```
,

您的代码需要在这一行进行更改: 这样,代码将搜索所需的 zip,而不是硬编码的 zip“搜索”。

val wedData: String = "<html><body><h1>No Internet!</h1></body></html>" val mimeType: String = "text/html" val utfType: String = "UTF-8" var mWebView : WebView mWebView = findViewById(R.id.web_view) mWebView.setWebViewClient(object : WebViewClient() { override fun onReceivedError(view: WebView,errorCode: Int,description: String,failingUrl: String) { // mWebView.loadUrl("file:///android_asset/myerrorpage.html") mWebView.loadData(wedData,mimeType,utfType) } }) mWebView.apply { var postData = "user=" + URLEncoder.encode("user","UTF-8") + "&mode="+URLEncoder.encode("client","UTF-8") settings.javaScriptEnabled = true settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK postUrl("http://example.com/",postData.encodeToByteArray()) }

使用下面的代码,它试图搜索字符串“search”并给出 index= -1 作为字符串“search”不存在于 Zip 数组中。

var index = zip.indexOf(search);