javascript - JavaScript - FOR 循环内的 IF 语句正在输出两个选项
问题描述
我正在编写一个函数,该函数使用 IF 语句从提示中搜索数组。因此,如果成功,我会得到我想要的输出,但它也会输出失败。
// The array I'm searching through
var statesArray = new Array();
statesArray['WI'] = "Wisconsin";
statesArray['MN'] = "Minnesota";
statesArray['IL'] = "Illinois";
// Now I'm trying to let the user search for the full state name from the two-letter abbreviation.
var stateSearch = prompt("enter a two letter state abbreviation")
for(var key in statesArray){
var value = statesArray[key]
if(stateSearch == key){
alert(value);
}else{
alert("try again");
}
}
因此,如果我在提示中输入“WI”,我会得到“Wisconsin”和“再试一次”。
解决方案
循环不适用于此。循环将检查数组的所有值并检查是否全部找到。
var statesArray = new Array();
statesArray['WI'] = "Wisconsin";
statesArray['MN'] = "Minnesota";
statesArray['IL'] = "Illinois";
// Now I'm trying to let the user search for the full state name from the two-letter abbreviation.
var stateSearch = prompt("enter a two letter state abbreviation");
let searchObj =statesArray[stateSearch];
if(searchObj == null){
alert("try again");
}else{
alert(searchObj);
}
推荐阅读
- javascript - 如何在电子js应用程序的pdf中添加数字签名?
- typescript - Rxjs Observable 数组在给定的开始和结束值之间进行选择
- gitlab-ci - 动态设置 gitlab-ci cache.key
- java - 在java中将特定时区中给定的日期和时间转换为UTC的最佳方法是什么
- pine-script - Tradingview Multi Time Frame:如何在日线图上绘制每周高点?
- python - 如何在 Tensorflow 2 中更改策略
- gremlin - Gremlin 查询语言:如何删除每个没有边缘的顶点?
- amazon-web-services - graphql lambda API 网关给出内部服务器错误,无法在 CloudWatch 或 X 射线中捕获或记录异常
- firemonkey - FMX 中是否有 TStringGrid::SetEditText 的等价物?
- javascript - 如何在单个 Amcharts 折线图中将多个 CSV 文件加载到不同系列中