[英]adding objects to array in localStorage
好的,我已经尝试在这里遵循示例,我知道可能有几种不同的方法可以将对象添加到 localstorage 中的数组而不是覆盖它,但我至少找不到其中一种。
得到了这段代码来将对象存储在数组中,但它正在覆盖自己。 谁能告诉我我错过了什么? (而且我担心我可能会错过很多)。
function addEntry() {
var entryTitle = document.getElementById("entryTitle").value;
var entryText = document.getElementById("entryText").value;
var entry = {
"title": entryTitle,
"text": entryText
};
localStorage.setItem("entry", JSON.stringify(entry));
var allEntries = [];
allEntries.push(entry);
localStorage.setItem("allEntries", JSON.stringify(allEntries));
};
当您使用setItem
它会覆盖它之前的项目。 您需要使用getItem
来检索旧列表,附加到它,然后将其保存回 localStorage:
function addEntry() {
// Parse any JSON previously stored in allEntries
var existingEntries = JSON.parse(localStorage.getItem("allEntries"));
if(existingEntries == null) existingEntries = [];
var entryTitle = document.getElementById("entryTitle").value;
var entryText = document.getElementById("entryText").value;
var entry = {
"title": entryTitle,
"text": entryText
};
localStorage.setItem("entry", JSON.stringify(entry));
// Save allEntries back to local storage
existingEntries.push(entry);
localStorage.setItem("allEntries", JSON.stringify(existingEntries));
};
这是一个演示上述内容的小提琴。
也许您只需要在推送新条目之前获取条目:
var allEntries = JSON.parse(localStorage.getItem("allEntries")) || [];
allEntries.push(entry);
//etc...
将对象添加到 localStorage (Ionic) 中的数组:
var existingEntries = JSON.parse(localStorage.getItem("allEntries"));
if(existingEntries == null) existingEntries = [];
var testObject ={username:this.username,
mobile:this.mobile,
email:this.email,
type:this.type,
password:this.password};
localStorage.setItem('testObject', JSON.stringify(testObject));
existingEntries.push(testObject);
localStorage.setItem("allEntries", JSON.stringify(existingEntries));
const object = { name: 'ayyan', age: 29, number: 03070084689, }; const arr = JSON.parse(localstorage.getItem('key_name')) || []; arr.push(object); localstorage.setitem(json.strigify('key_name', arr);
HTML5 localStorage 允许您存储数据的键/值对。 key 和 value 都需要是 string 。 要将数组存储为键或值,您需要将数组编码为 JSON 字符串。 在检索时,您需要将其解码回数组。
const object = {
name: 'ayyan',
age: 29,
number: 03070084689,
};
const arr = JSON.parse(localstorage.getItem('key_name')) || [];
const data = [arr, ...[object]];
localstorage.setitem(json.strigify('key', data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.