Angular2 / JavaScript - 如何显示所有localStorage保存的变量并获取所有键的总长度?

时间:2016-05-12 23:59:21

标签: javascript angular

我正在开发一个Angular2应用程序,我需要将用户添加的项目存储到购物车中。为此,我使用本地存储暂时保存项目。每个类别(例如鞋子,衣服......)都作为钥匙保存在本地存储器中;它的值是一个包含所有添加项的数组,属于同一类key

我有多个键,每个键都有一个数组值。 我想访问存储的密钥,并获得所有密钥的值的长度

例: key 1的值为5。 键2的值为12。

所以总长度是12 + 5 = 17

关于如何实现这一点的任何想法?

2 个答案:

答案 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;