javascript - 为什么我的 break 语句只适用于第一个“if”?
问题描述
我正在尝试制作一个基于提示的待办事项列表
目前我正在尝试添加将提示用户添加到数组的部分,这有效,但是当我尝试退出时,它只是一直在询问。退出适用于第一个问题 - “你想做什么?” 但是一旦我说“新”然后输入一个项目它不会让我退出。
// TO DO
let toDo = [];
let options = prompt("What would you like to do?")
while (options !== "quit") {
if (options === "quit") {
break;
}
if (options === "new") {
let options = prompt("add to do")
toDo.push(options);
}
}
console.log( toDo )
解决方案
这里break
完全没有意义。if (options === "quit") {
永远不会通过,因为while (options !== "quit") {
到那时已经失败了。
您的问题是由于您有两个名为options
.
第一个(第 4 行)用于测试循环是否应该退出。
第二个(内部if (options === "new") {
)用于将某些东西推到toDo
数组上并遮盖第一个。
不要重新声明 options
。从第二个中删除let
,只需为现有变量分配一个新值。
推荐阅读
- aws-glue - AWS Glue 自定义分类器
- visual-studio - 在 Visual Studio 2019 中重新打开关闭的选项卡(撤消关闭)?
- flutter - 滚动未来的 ListView
- flutter - 未处理的异常:RangeError(索引):无效值:有效值范围为空:0
- forms - Symfony 完全忽略了重定向和表单的处理
- facebook - Chatfuel 或 Manychat 等聊天机器人平台如何在后端创建 Facebook 应用程序来服务聊天机器人?
- python - 如何以表格格式编写日志记录我希望它们在 python 中按列显示而不使用 pandas
- scala - Scala 泛型类型扩展了 Comparable 接口
- swiftui - 用于在触摸上执行操作的 SwiftUI 方法
- angular - 角,访问,写管