Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';中断';循环中的命令_Javascript_Break - Fatal编程技术网

Javascript ';中断';循环中的命令

Javascript ';中断';循环中的命令,javascript,break,Javascript,Break,我是一名JS新手,我想了解这一点: 当我尝试删除“break”命令并搜索像“Chris”这样的名称时,总是会发现“if”语句被跳过,并从“else”语句获得响应 const contacts=['Chris:2232322','Sarah:3453456','Bill:7654322','Mary:9998769','Dianne:9384975']; const para=document.querySelector('p'); 常量输入=document.querySelector('inp

我是一名JS新手,我想了解这一点:
当我尝试删除“break”命令并搜索像“Chris”这样的名称时,总是会发现“if”语句被跳过,并从“else”语句获得响应

const contacts=['Chris:2232322','Sarah:3453456','Bill:7654322','Mary:9998769','Dianne:9384975'];
const para=document.querySelector('p');
常量输入=document.querySelector('input');
const btn=document.querySelector('button');
btn.addEventListener('click',function(){
让searchName=input.value.toLowerCase();
input.focus();
for(设i=0;i

p.S/对不起,我的英语不好。

您的if语句不会被跳过,如果您在if中添加console.log(),如果有匹配项,它将登录到控制台。但是,它将在您的段落中显示“未找到联系人”,因为循环仍将运行,而最后一次运行将不匹配。试着找“黛安娜”,你会找到一个匹配的

使用中断将使代码正常工作,但这不是最优雅的方式。您可以使用如下查找函数:

const contacts=['Chris:2232322','Sarah:3453456','Bill:7654322','Mary:9998769','Dianne:9384975'];
const para=document.querySelector('p');
常量输入=document.querySelector('input');
const btn=document.querySelector('button');
btn.addEventListener('click',function(){
让searchName=input.value.toLowerCase();
input.focus();
const searchResult=contacts.find(contact=>(
contact.split(“:”)[0]。toLowerCase()==searchName
));
如果(搜索结果){
const contact=searchResult.split(“:”);
para.textContent=联系人[0]+'\'的号码是'+联系人[1]+';
}否则{
para.textContent='未找到联系人';
}
});

搜寻

您实际上还没有问任何问题。你的问题是什么?为什么会这样,我的意思是“克里斯”是数组中的第一个项目!!我建议您使用一个分步调试程序来找出:根据我的理解:我从“if”语句中得到答案,然后值会更改为“else”语句中的值!但是为什么会发生这种情况,我的意思是,只要条件为真,它就不应该跳过“else”语句吗?您的
if
else
分支位于
for
循环内,因此
else
分支将用于
contacts
中不匹配的每个条目。我强烈建议你使用逐步调试程序,这样你就可以看到你的程序在做什么。你是对的,我和“Dianne”匹配,所以我想这是因为它是循环中的最后一个,对吗?