【发布时间】:2018-07-21 17:00:11
【问题描述】:
strong text我想获取用户输入并通过对象数组进行搜索。
我使用 for in 遍历对象数组和 if 循环进行比较。如果 if 条件为真,则需要向用户显示当前对象的详细信息,如果未找到显示错误消息。如果仅提供 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 中的第一个问题。
【问题讨论】:
-
请edit您的问题并提供minimal reproducible example。
-
.hasOwnProperty(next_evolution)— 变量next_evolution在哪里定义?你的意思是字符串:.hasOwnProperty("next_evolution"). -
“即使 JavaScript 中的 if 条件为真,也会执行其他部分” 不,不是。放下这种信念,这样你就可以看到真正发生的事情。
-
请不要随机粗体部分您的文本。它使很难阅读。
-
@Xufox next_evolution 是提供的数据中的对象之一。对于该函数,我只想检查输入名称是否存在于 next_evolution 对象中并显示口袋妖怪的名称
标签: javascript html json for-loop if-statement