【问题标题】:Javascript search for specific zip codes [duplicate]Javascript搜索特定邮政编码[重复]
【发布时间】:2018-11-09 15:54:58
【问题描述】:

所以,我正在编写代码来搜索用户输入的邮政编码,然后代码将说明县是什么,如果它是有效的,或者说明县是无效的(在一个州内)。有趣的是,它有效,只有第一行,第二行没有被处理,我不确定我做错了什么。我在网上查了一下,我似乎与我看到的例子相匹配。我将在下面显示代码:

function boroughCheck () {
var n = prompt("Enter a zip code", " ");
var entered = "Borough located:";

if( n == "10451"||"10452"||"10453"||"10454"||"10455"||"10456"||"10457"||"10458"||"10459"||"10460"||"10461"||"10462"||"10463"||"10464"||"10465"||"10466"||"10467"||"10468"||"10469"||"10470"||"10471"){
   
  alert(entered + " Bronx ");
}
else if( n == "11201"||"11202"||"11203"||"11204"||"11205"||"11206"||"11207"||"11208"||"11209"||"11210"||"11211"||"11212"||"11213"||"11214"||"11215"||"11216"||"11217"||"11218"||"11219"||"11220"||"11221"||"11222"||"11223"||"11224"||"11225"||"11226"|"11227"||"11228"||"11229"||"11230"||"11231"||"11232"|"11233"||"11234"||"11235"|"11236"||"11237"||"11238"||"11239"||"11241"||"11242"||"11243"||"11245"||"11247"||"11249"||"11251"||"11252"||"11256"){

  alert(entered + " Brooklyn ");
}
else
{
  alert(" - Invalid Zip Code")}
}

boroughCheck();

那么,我在这段代码中做错了什么,使第一个“if”语句运行,而不是第二个“else if”语句。我输入的任何邮政编码都显示为“布朗克斯”,即使它与我为布鲁克林地区输入的邮政编码相匹配? 有什么想法吗?

【问题讨论】:

  • 很可能是因为没有比较所有其他邮政编码。你不能这样做n == "zipcode1" || "zipcode2" 因为没有比较邮政编码 2
  • 你必须这样做 n== ''123" || n == "124" 但这不是解决这个问题的最佳方法
  • 谁投票结束这个过于宽泛?大声笑....应该是骗子。只需要找到它

标签: javascript


【解决方案1】:

JavaScript 写错了。

你需要做if (n == "10451" || n ==... )等等。

您也可以通过编写两个数组来避免这种情况,一个用于布朗克斯,一个用于布鲁克林,然后以这种方式进行测试:

var bronx = ["10451","10452"];
var brooklyn = ["11201","11202"];
var n = prompt("Enter a zip code", " ");
var entered = "Borough located:";

if(bronx.indexOf(x) === true){
    alert(entered + " Bronx ");
}elseif(brooklyn.indexOf(x) === true){
    alert(entered + " Brooklyn ");
}else{
    alert(" - Invalid Zip Code")}
}

方法3,使用范围。如果这些邮政编码不会改变并且它们是一致的,

if (n >= 11201 && n <= 11256) {
  // bronx
}elseif ( n >= 10451 && n <= 10471 ) {
  // brooklyn
}else{
  // nope
}

【讨论】:

  • 添加到这个好的答案,并回答你的 “为什么第一个 if 运行而不是 else?”n == "10451" || "10452" || "10453" 将始终返回true。 JavaScript 中的任何非空字符串都被视为truthy,因此它被评估为if (n == "10451" || true || true || true) 等。
猜你喜欢
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多