Javascript 将阵列存储到本地存储中,而不是替换

Javascript 将阵列存储到本地存储中,而不是替换,javascript,angularjs,local-storage,Javascript,Angularjs,Local Storage,我正在使用本地存储,如下所示 var post = { title: 'abc', price: 'USD5' }; window.localStorage['book'] = JSON.stringify(post); 我想在我的localstorage中创建嵌套的json,如果上面的代码在用户单击save的click事件中,它将删除旧数据并替换它。如何将新值作为数组对象推送?使用实际数组,例如在页面加载时: var posts = JSON.parse(local

我正在使用本地存储,如下所示

  var post = {
    title: 'abc',
    price: 'USD5'
  };

window.localStorage['book'] = JSON.stringify(post);

我想在我的localstorage中创建嵌套的json,如果上面的代码在用户单击save的click事件中,它将删除旧数据并替换它。如何将新值作为数组对象推送?

使用实际数组,例如在页面加载时:

var posts = JSON.parse(localStorage['book'] || "[]");
然后,在使用时,将以下内容添加到内存中的阵列:

posts.push({
   title: 'abc',
   price: 'USD5'
});
任何时候您想要将值保存回本地存储:

localStorage['book'] = JSON.stringify(posts);

下面是一个完整的功能示例(遗憾的是,堆栈片段不允许本地存储):

HTML:


姓名:
价格:
JavaScript(必须在文档中的HTML之后):

(函数(){
var nameField=document.getElementById(“txt名称”),
priceField=document.getElementById(“txt价格”);
//在页面加载时,获取当前集合或空白数组
var list=JSON.parse(localStorage.getItem(“list”)| |“[]”);
//显示条目
列表.forEach(showItem);
//“添加”按钮处理程序
document.getElementById(“btn add”).addEventListener(
“点击”,
函数(){
//获取名称和价格
变量项={
名称:nameField.value,
价格:priceField.value
};
//添加到列表中
列表。推送(项目);
//展示它
展示项目(项目);
//更新本地存储
setItem(“list”,JSON.stringify(list));
},
假的
);
//用于显示项目的函数
功能显示项(项){
var div=document.createElement('div');
div.innerHTML=
“名称:”+escapeHTML(项目名称)+
价格:“+escapeHTML(项目价格);
文件.getElementById(“列表”).appendChild(div);
}
//用于在字符串中转义HTML的函数
函数escapeHTML(str){

返回str.replace(/&/g,“&;”)。replace(/使用实际数组,例如在页面加载时:

var posts = JSON.parse(localStorage['book'] || "[]");
然后,在使用时,将以下内容添加到内存中的阵列:

posts.push({
   title: 'abc',
   price: 'USD5'
});
任何时候您想要将值保存回本地存储:

localStorage['book'] = JSON.stringify(posts);

下面是一个完整的功能示例(遗憾的是,堆栈片段不允许本地存储):

HTML:


姓名:
价格:
JavaScript(必须在文档中的HTML之后):

(函数(){
var nameField=document.getElementById(“txt名称”),
priceField=document.getElementById(“txt价格”);
//在页面加载时,获取当前集合或空白数组
var list=JSON.parse(localStorage.getItem(“list”)| |“[]”);
//显示条目
列表.forEach(showItem);
//“添加”按钮处理程序
document.getElementById(“btn add”).addEventListener(
“点击”,
函数(){
//获取名称和价格
变量项={
名称:nameField.value,
价格:priceField.value
};
//添加到列表中
列表。推送(项目);
//展示它
展示项目(项目);
//更新本地存储
setItem(“list”,JSON.stringify(list));
},
假的
);
//用于显示项目的函数
功能显示项(项){
var div=document.createElement('div');
div.innerHTML=
“名称:”+escapeHTML(项目名称)+
价格:“+escapeHTML(项目价格);
文件.getElementById(“列表”).appendChild(div);
}
//用于在字符串中转义HTML的函数
函数escapeHTML(str){

返回str.replace(/&/g,“&;”)。replace(/使用实际数组,例如在页面加载时:

var posts = JSON.parse(localStorage['book'] || "[]");
然后,在使用时,将以下内容添加到内存中的阵列:

posts.push({
   title: 'abc',
   price: 'USD5'
});
任何时候您想要将值保存回本地存储:

localStorage['book'] = JSON.stringify(posts);

下面是一个完整的功能示例(遗憾的是,堆栈片段不允许本地存储):

HTML:


姓名:
价格:
JavaScript(必须在文档中的HTML之后):

(函数(){
var nameField=document.getElementById(“txt名称”),
priceField=document.getElementById(“txt价格”);
//在页面加载时,获取当前集合或空白数组
var list=JSON.parse(localStorage.getItem(“list”)| |“[]”);
//显示条目
列表.forEach(showItem);
//“添加”按钮处理程序
document.getElementById(“btn add”).addEventListener(
“点击”,
函数(){
//获取名称和价格
变量项={
名称:nameField.value,
价格:priceField.value
};
//添加到列表中
列表。推送(项目);
//展示它
展示项目(项目);
//更新本地存储
setItem(“list”,JSON.stringify(list));
},
假的
);
//用于显示项目的函数
功能显示项(项){
var div=document.createElement('div');
div.innerHTML=
“名称:”+escapeHTML(项目名称)+
价格:“+escapeHTML(项目价格);
文件.getElementById(“列表”).appendChild(div);
}
//用于在字符串中转义HTML的函数
函数escapeHTML(str){

返回str.replace(/&/g,“&;”)。replace(/使用实际数组,例如在页面加载时:

var posts = JSON.parse(localStorage['book'] || "[]");
然后,在使用时,将以下内容添加到内存中的阵列:

posts.push({
   title: 'abc',
   price: 'USD5'
});
任何时候您想要将值保存回本地存储:

localStorage['book'] = JSON.stringify(posts);

下面是一个完整的功能示例(遗憾的是,堆栈片段不允许本地存储):

HTML:


姓名:
价格:
JavaScript(必须在文档中的HTML之后):

(函数(){
var nameField=document.getElementById(“txt名称”),
priceField=document.getElementById(“txt价格”);
//在页面加载时,获取当前集合或空白数组
var list=JSON.parse(localStorage.getItem(“list”)| |“[]”);
//显示条目
列表.forEach(showItem);
//“添加”按钮处理程序
document.getElementById(“btn add”).addEventListener(
“点击”,
函数(){
//获取名称和价格
变量项={
名称:nameField.value,
价格:priceField.value
};
//添加到列表中
列表。推送(项目);
//展示它
显示