2017-09-01 47 views
1

请帮忙!我设置了localStorage项目,比如:you-title,you-firstname,partner-title,partner-firstname,并且我想要统计每个前缀的设置数量,并将前缀设置为关键字。我能得到尽可能获取前缀和计数单前缀:使用jQuery设置以唯一字开头的localStorage密钥的计数

var j = 0; 
for (var i = 0, len = localStorage.length; i < len; i++) { 
    var key = localStorage.key(i); 
    var prefix = key.split('-')[0]; 

    if (prefix === 'you') { 
      j++; 
      localStorage.setItem(prefix, j); 
    } 
} 

但是我有相当多的不同的前缀,所以我不想硬编码他们这种方式。

任何想法?

非常感谢,

本。

+0

是什么问题? – Edwin

回答

2

要达到此目的,您可以使用键/值对作为前缀和计数创建一个对象。这样,你不需要知道密钥是什么,因为它是所有在运行时设置:

var counterObj = {}; 
Object.keys(localStorage).forEach(function(key){ 
    var prefix = key.split('-')[0]; 
    counterObj[prefix] = ++counterObj[prefix] || 1; 
}); 

console.log(counterObj); 

Working example

注意我不得不把例如在的jsfiddle为SO片段限制localStorage的访问。