如何在javascript中添加/追加到现有的Web存储
How to add/append to existing Web storage in javascript?
我正在尝试使用此代码添加/追加到新的/现有的localStorage:
function add(){
var name = document.getElementById("name").value;
var ort = document.getElementById("ort").value;
var user = {"name":name, "ort":ort};
var exist = [];
var tmp = (JSON.parse(localStorage.getItem("users")));
if(tmp)
exist.push(tmp);
exist.push(user);
localStorage.setItem("users",JSON.stringify(exist));
console.log(JSON.parse(localStorage.getItem("users")));
var obj = JSON.parse(localStorage.getItem("users"));
for(var i=0; i<obj.length; i++) {
console.log('key: ' + i + ''n' + 'value: ' + obj[i]);
}
}
查看Chrome开发工具localStorage看起来像这样:
[[{"name":"a","city":"a"}],{"name":"b","city":"b"}]
但是我想要的是:
[{"name":"a","city":"a"},{"name":"b","city":"b"}]
我做错了什么?
感谢任何帮助,
问好,
localStorage
只存储strings
。你需要stringify
你的exist
,然后保存到storage
localStorage.setItem("users",JSON.stringify(exist));
使用JSON.parse
var exist = JSON.parse(localStorage.exist); //Even for users object do the same
只将数组tmp
中的对象推入exist
,使用map()
:
tmp.map(function(item){
exist.push(item);
})
相关文章:
- web浏览器中的离线应用程序存储数据并在之后上传
- 在firebase(web)上存储数据时出现问题
- (临时)在Web应用程序中存储JSON搜索结果
- Html5 Web 存储未在第二页中显示数据
- 无法使用HTML5 Web存储保存布尔值的解决方法
- 本地存储web数据的最佳实践
- 在web应用程序中存储数据
- 围绕web存储的Javascript API包装器
- 具有Web SQL数据库的客户端存储
- 在Polymer中使用会话存储web中的数据
- 将图像从 Web 应用程序上传到 S3,而无需将其存储在服务器中
- 如何在 Symbian 存储中发布 Web 应用程序
- jQuery:在输入字段上使用Web存储/本地存储
- 如何设计 Web 应用以允许多个存储提供程序
- 在客户端JavaScript中存储Web应用程序的用户密码 - 这是安全的吗?
- $_POST 不在提交 Web 应用程序上存储数据
- Web应用程序在客户端存储大量数据
- HTML5离线存储/Web SQL
- getDownloadURL无法正常工作-Firebase存储(Web)
- 检测和存储 Web 应用客户端所在的时区的最佳方法是什么