【发布时间】:2012-12-11 04:34:00
【问题描述】:
我有一个本地存储密钥“st”,其值为:
[{"id":"es","state":"5hwrte5"},{"id":"bs","state":"dakiei3"}]
如果它不存在,我想在最后添加一个键值所以最终得到:
[{"id":"es","state":"5hwrte5"},{"id":"xs","state":"dakiei3"},{"id":"NEWKEY","state":"off"}]
所以我尝试的是:
if (typeof getstate(json, 'NEWKEY') == "undefined"){
localStorage["st"] = JSON.stringify([{
"id": "es",
"state": getstate(json, "es")
}, {
"id": "xs",
"state": getstate(json, "bs")
}, {
"id": "NEWKEY",
"state": "off"
}])
}
getstate 为我提供了某个特定 ID 的状态。
现在的主要问题是我想保持原来的值(所以我需要在当时检索它们)并使用最简单的方法,所以 以防我的密钥有 30 个不同的 id 而我想要再添加 1 个,我不必检索所有 30 个 id 的值。
【问题讨论】:
-
仅供参考,您可以只测试
=== undefined- 无需使用typeof,除非您正在处理可能未定义的变量(例如typeof foo == 'undefined',因为foo === undefined在这种情况下会中断) -
您意识到,JSON 是一种用于交换 javascript 数据的字符串格式。您是在谈论实际的 JSON 字符串吗?或者关于一个 javascript 对象数组?
-
@jfriend00 更改了标题。我在谈论一个 javascript 对象数组
标签: jquery arrays json local-storage