我正在开发一个Angular2应用程序,我需要将用户添加的项目存储到购物车中。为此,我使用本地存储暂时保存项目。每个类别(例如鞋子,衣服......)都作为钥匙保存在本地存储器中;它的值是一个包含所有添加项的数组,属于同一类key
。
我有多个键,每个键都有一个数组值。 我想访问存储的密钥,并获得所有密钥的值的长度
例: key 1的值为5。 键2的值为12。
所以总长度是12 + 5 = 17
关于如何实现这一点的任何想法?
答案 0 :(得分:0)
为什么不将它全部存储在一个对象上,并将JSON.stringify它保存,JSON.parse加载(Angular2可能有更好的方法来访问localstorage)。
var store = {
"categories" : {
"shoes" : ['key1', 'key2'],
"clothes" : []
}
}
function getCategoryLength(cat){
var total = 0;
for(var i = 0; i < store.categories[cat].length){
total += store.categories[cat][i].length;
}
return total
}
getCategoryLength("shoes")
答案 1 :(得分:0)
您可以使用Object.keys
访问密钥,如下所示
var storedKeys = Object.keys(localStorage);
//length = storedKeys.length
/*
//Assuming your have store structure like below
localStorage = {
key1: [1, 2, 3],
key2: [1, 2, 3, 4, 5],
key3: "text"
};
*/
var flattenKeysLength = 0;
for(var key in localStorage)
flattenKeysLength +=
(typeof localStorage[key] == "string")? 1:localStorage[key].length;