You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

待办清单删除项刷新后复现,localStorage数组未覆盖问题求助

问题根因

删除逻辑中比较操作出现类型不匹配:

  • 从parent.dataset.todoIndex获取到的索引值是字符串类型
  • Todo实例上存储的index属性是数字类型
    你使用严格不等运算符!==进行判断时,会同时校验值和类型,导致过滤条件永远返回true,filter方法没有移除任何数组元素,todoList未发生变化,写入localStorage的内容和删除前完全一致,刷新页面后自然会恢复已删除的待办项。

修复方法

修改删除事件监听中的filter判断逻辑,统一比较的类型即可,推荐使用显式类型转换的写法,避免隐式转换带来的潜在问题:

// 原错误写法
// todoList = todoList.filter((todo) => todo.index !== todoIndex);
// 修复后写法
todoList = todoList.filter((todo) => todo.index !== Number(todoIndex));

可选优化

当前代码中你先手动移除了DOM元素再修改数组,其实可以在修改todoList后统一重新渲染全量待办列表,减少手动操作DOM带来的数据视图不一致问题,不过当前问题只需要修改上述比较逻辑即可正常运行。

内容的提问来源于stack exchange,提问作者Zain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 17:36:03