javascript - 一旦满足 .find 方法中的条件,就中断 forEach 迭代
问题描述
我正在处理一个待办事项列表分配,该分配基本上包括一个用户能够创建一个列表,并且在该列表中他将能够创建待办事项项目。我正在研究从给定列表中删除待办事项的功能。现在我可以通过遍历每个列表来实现它,找到用户想要删除的 Todo 项目的匹配 Id,获取该项目的索引并使用 Splice() 方法将其从原始数组中删除,这一切都很好,而且效果很好,但我担心的是,即使找到了 ID,初始 ForEach 迭代也会继续迭代每个列表,所以我的问题是,一旦找到匹配的 ID,我如何从迭代中中断?也许我使用了错误的方法来完成,对不起让你的眼睛提前流血了:)
const lists = JSON.parse(localStorage.getItem('lists')) || [];
generatedTrashIcon.addEventListener('click', (event) => {
deleteTodo(generatedTrashIcon.previousSibling.id);
});
const deleteTodo = (deletedTodoId) => {
lists.forEach((list) => {
const findTodo = list.todos.find((todoItem) => todoItem.id === deletedTodoId);
if (findTodo) {
const todoIndex = list.todos.indexOf(findTodo);
list.todos.splice(todoIndex, 1);
localStorage.setItem('lists', JSON.stringify(lists));
appendTodosToView(clickedListId);
}
});
};
以下是列表对象的输出结构:
{
"id": "1622610431641",
"name": "Productivity",
"todos": [
{
"id": "1623013270585",
"todoItem": "code all day!"
}
]
}
解决方案
推荐阅读
- javascript - 使用 jQuery Full Calendar、REST API 和 Sharepoint 设置重复事件的日期范围 [编辑]
- reactjs - useEffect 缺少一个 const 函数的依赖项
- pine-script - 我希望永久绘制初始日范围
- mysql - MySQL在A列中查找具有相同值但在B列中具有不同值的所有元素
- go - 如何使用共享库执行另一个程序以执行 LD_PRELOAD 技巧
- java - 在 Eclipse 中运行一个 CHILD,其 PARENT 类具有 main 方法,但 CHILD 类本身只是一个没有 main 方法的类
- html - html计算字段不接受空字段
- c# - EFCore 禁止相关数据加载它的相关数据?
- java - 将字符串添加到剪贴板java
- google-apps-script - 带有身份验证令牌问题的表格和 Appscripts Hubspot POST 请求