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

如何使用jQuery获取localStorage中匹配指定用户名的特定值

问题根因

遍历localStorage存储的多用户数据时逻辑存在错误:for...in 循环遍历data_user过程中,每次迭代都会覆盖entry变量,循环执行完成后entry只会保留最后一条遍历到的用户记录,此时再做用户名匹配,自然无法命中和aa对应的目标用户。同时原代码引用了未定义的entry2变量,会直接导致内容渲染逻辑报错。

存储结构参考

localStorage存储示例

修正后可运行代码
// 读取当前登录的目标用户名
const aa = JSON.parse(localStorage.getItem("a"))
$('#isinama').text('Welcome ' + aa)

// 读取localStorage中存储的全量用户数据
const data_user1 = JSON.parse(localStorage.getItem('data_user'))

// 遍历过程中实时匹配目标用户,不要等循环结束再做判断
for (const index in data_user1) {
  const currentUserEntry = data_user1[index]
  // 命中当前登录用户时,直接渲染该用户关联的内容
  if (aa === currentUserEntry.username) {
    // 注意:此处替换为你实际存储用户发言内容的数组字段,原代码entry2为未定义的无效变量
    $.each(currentUserEntry.posts, function(i, data) {
      $('#listcurhat').append(`<div class="card mb-3" style="max-width:24rem;">
        <div class="card-header" id="isinama2">${aa}</div>
        <div class="card-body">
          <p class="card-text">${data.textcurhat}</p>
        </div>
      </div>`)
    })
    // 匹配完成后直接终止循环,减少不必要的性能消耗
    break
  }
}
注意事项
  • 代码中currentUserEntry.posts需要替换为你data_user结构里实际存储用户发言列表的字段名,和你本地存储结构保持一致即可
  • 建议使用const/let声明变量,不要直接裸写变量赋值,避免造成全局变量污染
  • 匹配到目标用户后直接跳出循环,不需要遍历剩余无关用户数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:39:09