我正在尝试根据电子商务网站上的产品查看历史记录在本地存储中构建一个数组。每次用户查看产品页面时,我都想将该页面的 ID 添加到本地存储的数组中。
var itemArray = [];
var myItem = $("li#ref").data("ref");
itemArray.push(myItem);
var LS = {
set: function (key, val) {
return localStorage.setItem(key, JSON.stringify(val));
},
get: function (key) {
return JSON.parse(localStorage.getItem(key));
}
};
LS.set("Viewed", itemArray);
我遇到的问题是它永远不会构建一个数组,我看到的最新产品只是覆盖了之前的一个,所以我只得到一个条目。
你知道这是否可以实现吗?
提前致谢
理查德
最佳答案
您需要将新值附加到存储在本地存储中的现有数组,而不是新的空数组:
var LS = {
set: function (key, val) {
return localStorage.setItem(key, JSON.stringify(val));
},
get: function (key) {
return JSON.parse(localStorage.getItem(key));
}
};
var itemArray = LS.get('Viewed') || [];
var myItem = $("li#ref").data("ref");
if (itemArray.indexOf(myItem) !== -1) {
itemArray.push(myItem);
}
LS.set("Viewed", itemArray);
您可能还应该检查该值是否已在数组中以避免重复。
关于javascript - 在 LocalStorage 中构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25261670/