首页 > 解决方案 > 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”和“再试一次”。

标签: javascript

解决方案


循环不适用于此。循环将检查数组的所有值并检查是否全部找到。

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);
}


推荐阅读