javascript - 当 if 正确时,如何使此代码像 else 语句不存在一样工作,并且对 else 语句同样执行相同的操作
问题描述
let all = ['Nkechi', 'Añuli', 'Nneka'];
function start(){
let begin = prompt('Name');
let counted = "";
for(let i = 0; i<all.length; i++){
if(begin === all[i]){
counted = all[i];
alert(`Welcome ${counted}`);
} else {
alert('Entrance denied');
}
}
}
解决方案
如果您想if else
在循环中进行检查,请执行
- 在数组中找到名称后,在 if 语句的末尾使用
break;
以跳出循环all
- 更改
else
为else if (i === all.length - 1)
ie你到达了数组的末尾。
let all = ['Nkechi', 'Añuli', 'Nneka'];
function start(){
let begin = prompt('Name');
let counted = "";
for(let i = 0; i<all.length; i++){
if(begin === all[i]){
counted = all[i];
alert(`Welcome ${counted}`);
break; // break here
} else if (i === all.length - 1) { // change else
alert('Entrance denied');
}
}
}
但是您可以通过以下任一方式简化此逻辑
break;
一旦从数组中找到名称就跳出循环all
,稍后再检查
或者
- 首先完成循环,
if else
最后在底部进行检查,如下所示。
let all = ['Nkechi', 'Añuli', 'Nneka'];
function start(){
let begin = prompt('Name');
let counted = "";
for(let i = 0; i<all.length; i++){
if(begin === all[i]){
counted = all[i];
}
}
if (counted === "") {
alert('Entrance denied');
} else {
alert(`Welcome ${counted}`);
}
}
Array.includes
您可以使用以下方法在没有任何循环的情况下进一步简化所有这些
const all = ['Nkechi', 'Añuli', 'Nneka'];
function start() {
const begin = prompt('Name');
if (all.includes(begin)) {
alert(`Welcome ${begin}`);
} else {
alert('Entrance denied');
}
}
推荐阅读
- amazon-web-services - 使用 Fargate 将 imgproxy 部署到 AWS
- arrays - c中的随机洗牌
- java - 选择排序在Java中出现错误异常
- laravel - 加入 Laravel 8 不返回所需的列
- scala - 如何在 Akka-HTTP 中使用带有 OR 的两个指令?
- reactjs - 使用 travis CI 在 docker 中运行 npm 测试
- python - 最小化 Base64
- python - 是否有 Python2 模块比 sys 模块具有更准确的 Windows 操作系统信息?
- qt - 可翻转重叠其他元素
- excel - 数组公式减去两个命名范围,并计算 <15 和大于 0 的值