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

向localStorage追加数据失败,无法将指定字段加入目标对象

向localStorage追加数据失败,无法将指定字段加入目标对象

兄弟,我看你这问题主要踩了两个坑,先帮你理清楚报错原因,再给你一步步的解决办法:

首先你遇到的 result.push is not a function 报错,核心原因很直白:push 是数组的专属方法,但你从 localStorage 里取出来解析后的 test-params 是个对象,不是数组,用数组方法操作对象肯定会报错!

再看你的数据结构问题:现在 localStorage 里的 fullname 和 picture 是独立的键,而 test-params 是一个字符串化的对象。你要做的是把这两个字段移到 test-params 这个对象内部,对吧?

那正确的操作步骤应该是这样的:

1. 修正键名,正确取出并解析目标对象

先看你原代码里的 localStorage.getItem("oauth2-test-params"),但从你的 console.log(localStorage) 结果来看,实际的键是 test-params,这首先就会导致你取出来的 result 是 null 或者不是你要的对象!所以第一步要把键名改对,再把字符串解析成 JS 对象:

// 取出test-params对应的字符串,键名要和localStorage里的一致
let testParamsStr = localStorage.getItem('test-params');
// 把字符串解析成可操作的JS对象
let testParams = JSON.parse(testParamsStr);

2. 给目标对象添加属性

现在 testParams 是普通的 JS 对象,直接给它添加 fullname 和 picture 属性就行,完全不需要用 push:

// 可以从localStorage直接取已有的值,或者用你自己的data变量
let fullname = localStorage.getItem('fullname') || 'Junk';
let picture = localStorage.getItem('picture') || 'two';

// 直接给对象赋值添加属性
testParams.fullname = fullname;
testParams.picture = picture;

3. 把更新后的对象重新存回localStorage

因为 localStorage 只能存储字符串,所以要把修改后的对象重新转成字符串,再存回去:

// 把更新后的对象转成JSON字符串
let updatedTestParamsStr = JSON.stringify(testParams);
// 存回localStorage的test-params键
localStorage.setItem('test-params', updatedTestParamsStr);

4. (可选)清理多余的独立键

如果你不需要原来 localStorage 里独立的 fullname 和 picture 了,可以把它们删掉:

localStorage.removeItem('fullname');
localStorage.removeItem('picture');

完整可运行代码

把上面的步骤整合起来就是:

// 1. 取出并解析目标对象
let testParamsStr = localStorage.getItem('test-params');
let testParams = JSON.parse(testParamsStr);

// 2. 添加需要的属性到对象中
testParams.fullname = "Junk";
testParams.picture = "two";

// 3. 重新持久化到localStorage
localStorage.setItem('test-params', JSON.stringify(testParams));

// 可选:清理不再需要的独立键
localStorage.removeItem('fullname');
localStorage.removeItem('picture');

执行完这段代码后,你的 localStorage 就会变成你想要的结构:

{
  "test-params": "{\"fullname\":\"Junk\",\"picture\":\"two\",\"three\":\"77-96L2N\",\"four\":\"junk\",\"five\":\"Bearer\",\"expires_in\":\"3599\"}"
}

备注:内容来源于stack exchange,提问作者newdeveloper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:03:07