如果else不能正常工作,则使用JavaScript
上面的代码没有按照我的预期工作。每当我从数组中输入一个项目时,它就会转到其他部分。不使用如果else不能正常工作,则使用JavaScript,javascript,arrays,if-statement,Javascript,Arrays,If Statement,上面的代码没有按照我的预期工作。每当我从数组中输入一个项目时,它就会转到其他部分。不使用键输入您只需使用值,因此您当前不需要使用键访问食物,分配给#display food的HTML将是for..in循环最后一次迭代的结果。不要使用for..in来迭代数组。另外,你需要在第一次匹配时打破循环。我很确定这里的问题是你在迭代食物数组,但在每次不匹配的迭代中,你都会打印“错误”消息,所以你永远看不到你已经匹配了其中一个值。在成功匹配时添加break语句根本不使用循环。使用food\u arr.inde
键输入
您只需使用值
,因此您当前不需要使用键访问食物,分配给#display food
的HTML将是for..in
循环最后一次迭代的结果。不要使用for..in
来迭代数组。另外,你需要在第一次匹配时打破循环。我很确定这里的问题是你在迭代食物数组,但在每次不匹配的迭代中,你都会打印“错误”消息,所以你永远看不到你已经匹配了其中一个值。在成功匹配时添加break语句根本不使用循环。使用food\u arr.indexOf(food\u choice)
谢谢@Mohan P.它正在工作。但是,请您解释一下我的代码中出现了什么问题。您需要检查所选项目是否存在,并且您正在从数组中检查它是否与所有元素匹配。显然,它不会与所有元素匹配。
function food(){
var food_choice = document.getElementById('food-ch').value;
console.log(food_choice);
var food_arr = ['tuna','salmon','prawn','chicken'];
for(key in food_arr){
if(food_choice === food_arr[key]){
console.log(food_arr[key]);
$('#display-food').html("You have chosen "+food_arr[key]);
}
else{
$('#display-food').html("Please try again");
}
}
}
function food(){
var food_choice = document.getElementById('food-ch').value;
console.log(food_choice);
var food_arr = ['tuna','salmon','prawn','chicken'];
if(food_arr.indexOf(food_choice) != -1){
$('#display-food').html("You have chosen" +food_choice);
} else {
$('#display-food').html("Please try again");
}
}