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

Vue.js项目中localStorage存储内容去重的问题及解决方案咨询

enter image description here
enter image description here

重复添加问题成因
  • 现有代码的点击事件逻辑未做重复内容校验:每次触发点击时直接将目标文本追加到存储数组中,不会提前判断该文本是否已经存在
  • localStorage仅负责数据持久化存储,本身没有内置去重机制,多次点击就会生成多条重复的文本记录
对应解决方案

核心逻辑是新增内容前先做重复校验,仅当内容不存在时才执行写入操作,具体实现步骤如下:

  1. 每次点击按钮后,先从localStorage中读取已存储的文本列表,无历史数据时初始化为空数组
  2. 使用includes()方法判断待添加的文本是否已存在于列表中
  3. 仅当文本不存在时,才将其推入数组并同步更新到localStorage中

参考实现代码:

// 按钮点击触发函数,text为待添加的目标文本
function addUniqueText(text) {
  // 读取本地存储的历史文本列表,反序列化为数组
  const savedTexts = JSON.parse(localStorage.getItem('textList') || '[]')
  // 校验当前文本是否已存在
  if (!savedTexts.includes(text)) {
    savedTexts.push(text)
    // 重新序列化后存回localStorage
    localStorage.setItem('textList', JSON.stringify(savedTexts))
    // 此处可添加页面内容渲染的相关逻辑
  }
}

如果后续需要存储的是对象类型的数据,替换includes()为自定义的属性匹配逻辑即可实现去重。

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

相关产品推荐
方舟 Agent Plan

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

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