即使在Javascript中if条件为真,也会执行其他部分

时间:2018-02-11 11:25:27

标签: javascript html json for-loop if-statement

强文本我想获取用户输入并通过对象数组搜索它。 我用于进入 遍历对象数组 和if循环进行比较。如果if条件为true,则需要向用户显示当前对象详细信息,如果未找到显示错误消息。如果只提供了If条件,但是如果提供了else条件,则只能执行else块,我的代码工作正常。
我的HTML

 <input type="text" id="name" placeholder="Name"><br>
 <input type="button" value="Get Pokemon Details" id="pokedetails">

JS:

for (var n in data.pokemon) {
if (data.pokemon[n].name.toLowerCase() === value.toLowerCase()) {
  let a = data.pokemon[n];
  displayDetails(a);
  console.log(a);
  break;
}else {
alert('invalid name');
}}}

我的javascript代码为了查看目的这么久我已经包含在jsfiddle中,请访问那里获取完整的脚本文件。Click Here to Visit JsFiddle

我的代码或任何解决方案的问题是什么?

如果您在阅读或理解问题时发现一些奇怪的内容,这是我在Stackoverflow道歉中的第一个问题。

1 个答案:

答案 0 :(得分:0)

使用temp变量解决了这个问题。

  var flag=0;
  for (var n in data.pokemon) {
    if (data.pokemon[n].name.toLowerCase() === value.toLowerCase()) {      
      flag=1;
      break;      
    }
  }
  if (flag==1){
    let a = data.pokemon[n];
      displayDetails(a);
      console.log(a);
  }
  else{
    alert('Invalid Name');
  }
}