javascript - 待办事项列表中完成的元素数量
问题描述
我正在尝试将我已完成的列表中的项目放在屏幕上。我想出了这个功能:
function countDone() {
let numberOfDone = 0
for (let i = 0; i < todoList.length; i++) {
if (todoList[i].isDone === true) {
numberOfDone = numberOfDone + 1
}
return numberOfDone
}
}
function printCountDone() {
let f = countDone()
document.querySelector('#todo-done').innerHTML = f
}
我不知道函数是错误的还是我只是在错误的地方调用它。我在这里看到了一些类似的帖子,但我无法理解(我是新手,提前抱歉)这是codepen链接:https ://codepen.io/lodesousa/pen/jOLOeLr
解决方案
@Chris G 已经在他们的评论中介绍了这一点,但我想更深入地探索你正在发生的事情。
这是您拥有的代码,用简单的英语:
function countDone:
create variable "numberOfDone" and set to 0
iterate over all todos. for each todo:
if the todo is done:
increase variable "numberOfDone" by 1
return variable numberOfDone
end iteration
end function
发现错误?检查压痕。剧透:该函数没有返回任何内容。
您正在返回循环numberOfDone
的每次迭代,for
而不是像您想要的那样在函数末尾返回。
在函数的错误位置返回值是一个非常常见的编程错误——我敢打赌每个程序员都曾遇到过这个问题。这是您应该考虑的事情:检查函数是否返回任何内容是调试函数时的一个很好的起点。
无论如何,干杯,欢迎来到 Stack Overflow!恭喜你的第一个问题!
推荐阅读
- python - 使用字典对数据帧的索引进行分组
- spring-boot - 如何为不同的服务配置多个 OAuth2RestTemplates?
- typescript - 从数组值推断类型
- swift - 在 SwiftUI 应用程序中按下按钮时滚动到特定行的列表
- c# - 根据编辑器情况更改提交按钮的作用
- sql - Laravel -“SQLSTATE [28000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:NO)”
- python - 从另一个系列中解析 Pandas 系列
- machine-learning - 如何解释 SVM 进行回归?
- ios - 在 UIBezierPath 中插入 CATextLayer 并旋转
- google-apps-script - 通过按 googlesheet 中的按钮获取邮件 ID