Angular2/JavaScript-如何显示所有localStorage保存的变量并获取所有键的总长度?
我正在开发Angular2应用程序,其中我需要存储用户添加到购物车中的项目。为此,我使用本地存储来临时保存项目。每个类别(如鞋、衣服等)作为一个键保存在本地存储库中;它的值是一个数组,包含所有添加的项,并且属于同一类别Angular2/JavaScript-如何显示所有localStorage保存的变量并获取所有键的总长度?,javascript,angular,Javascript,Angular,我正在开发Angular2应用程序,其中我需要存储用户添加到购物车中的项目。为此,我使用本地存储来临时保存项目。每个类别(如鞋、衣服等)作为一个键保存在本地存储库中;它的值是一个数组,包含所有添加的项,并且属于同一类别键 我有多个键,每个键都有一个数组值。 我想访问存储的密钥,并获取所有密钥的值的长度 例: 键1的值的长度为5。 键2的值的长度为12 所以总长度是12+5=17 关于如何实现这一点有什么想法吗?为什么不把它全部存储在一个对象上,然后用JSON.stringify保存,用JSON.
键
我有多个键,每个键都有一个数组值。
我想访问存储的密钥,并获取所有密钥的值的长度
例:
键1的值的长度为5。
键2的值的长度为12
所以总长度是12+5=17
关于如何实现这一点有什么想法吗?为什么不把它全部存储在一个对象上,然后用JSON.stringify保存,用JSON.parse加载(Angular2可能有更好的访问本地存储的方法)
var存储={
“类别”:{
“鞋”:['key1'、'key2'],
“衣服”:[]
}
}
函数getCategoryLength(cat){
var合计=0;
对于(变量i=0;i
为什么不将其全部存储在一个对象上,然后JSON.stringify保存,JSON.parse加载(Angular2可能有更好的访问本地存储的方法)
var存储={
“类别”:{
“鞋”:['key1'、'key2'],
“衣服”:[]
}
}
函数getCategoryLength(cat){
var合计=0;
对于(变量i=0;i
您可以使用对象访问密钥。密钥如下所示
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;
您可以使用对象访问键。键如下所示
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;
JSON.stringify(localStorage).length非常简单,如果您不介意额外的引号(如果需要可以替换()),否则,请使用Object.keys(localStorage)
和loopJSON.stringify(localStorage).length只在您有一个对象时起作用一些令人困惑的事情:localStorage只存储字符串,而不是数组或对象,因此,不清楚存储的数组长度是否需要字符数或元素数。您是否有一个命名约定,其中不同的localStorage键在类别的末尾有一个数字来定义键?如果是这种情况,循环遍历它们并将大小加起来:var shoeSpace=Object.keys(localStorage)。filter(/./.test,/^shoes\d+$/).map(a=>localStorage[a].length)。reduce((a,b)=>a+b)
JSON.stringify(localStorage)。如果你不介意额外的引号(如果需要,可以替换()),那么length
就非常简单了,使用Object.keys(localStorage)
和loopJSON.stringify(localStorage)。length仅在您有一个Object时起作用一些令人困惑的事情:localStorage仅存储字符串,而不存储数组或对象,因此不清楚根据存储的数组长度是否需要字符或元素计数。您是否有一个命名约定,其中不同的localStorage键在类别的末尾有一个数字来定义键?如果是这种情况,循环遍历它们并将大小相加:var shoeSpace=Object.keys(localStorage)。filter(/./.test,/^shoes\d+$/).map(a=>localStorage[a].length)。reduce((a,b)=>a+b)