jquery - 使用 jQuery 设置以唯一单词开头的 localStorage 键的计数

标签 jquery for-loop count local-storage

请帮忙!我设置了 localStorage 项目,例如:you-title、you-firstname、partner-title、partner-firstname,我想计算每个前缀设置了多少个,并以前缀为键设置计数。我可以获取前缀并计算单个前缀:

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);
   }
}

但是我有很多不同的前缀,所以我不想以这种方式对它们进行硬编码。

有什么想法吗?

非常感谢,

本。

最佳答案

要实现此目的,您可以创建一个以键/值对作为前缀和计数的对象。这样你就不需要知道 key 是什么,因为它都是在运行时设置的:

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 的访问。

关于jquery - 使用 jQuery 设置以唯一单词开头的 localStorage 键的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45999370/

相关文章:

jquery - 填充内容时检测 div 大小(高度)(来自数据库)

javascript - Jquery .autocomplete 不工作

javascript - Instagram API 未加载所有图像

mysql - 从两个表中选择不同的值

javascript - 从初始 slider 更新 jquery slider 最大值

jquery - 通过每次悬停而不是一次使用 jquery 来传递元素

objective-c - 使用 Objective-C 的 for 循环在屏幕上显示按钮

python - 使用 for 循环创建数据副本

jquery - 使用 jQuery 计算 div 中嵌套的所有输入

python - 计算标记化网址中的单词数