javascript - 无论如何在本地存储中使用星号或其他方法?

标签 javascript local-storage

这是一个简单而愚蠢的问题。我想使用 localStorage.removeItem('itemhere') 函数。我的情况是我只想删除所有具有特定结尾(例如“_email”)的本地存储项目。反正有没有针对这个?也许就像通用选择器 *(星号)一样? https://api.jquery.com/all-selector/

我试过 *(星号)方法但没有结果

这些对我不起作用,所以我不确定是否可行。

localStorage.removeItem('* _email');
localStorage.removeItem(*'_email');
localStorage.removeItem(*' _email');
also a variable such as
var email = $("*").localStorage("_email");

代码假设适合如下变化函数。

$('.sar').on('change', function () {
$(this).closest('form').find('input[type=radio].rgroup').prop('checked', true);

        localStorage.setItem('all1', JSON.stringify(true));
        localStorage.removeItem('all2');
        localStorage.removeItem('all3');
        localStorage.removeItem('uncheck');
        localStorage.removeItem("* _email");

    });

我希望所有以“_email”结尾的本地存储条目都从本地存储中删除,而其他条目则保留在原位。

最佳答案

您可以通过遍历本地存储中的所有元素来手动完成此操作。

这从您的 localStorage 对象中将所有键作为数组提供:

Object.keys(localStorage)

使用过滤器,根据您的条件过滤它们:

.filter(key => key.endsWith('_email'))

然后从localStorage中将它们一一移除:

.forEach(key => localStorage.removeItem(key))

结果:

Object.keys(localStorage)
    .filter(key => key.endsWith('_email'))
    .forEach(
        key => localStorage.removeItem(key)
    )

关于javascript - 无论如何在本地存储中使用星号或其他方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350133/

相关文章:

javascript - 使用 localStorage.getItem() 获取不同属性的值?

javascript - Backbone.js 和本地存储。必须指定 "url"属性或函数

javascript - 如何用 jasmine 监视 localStorage 方法

javascript - 您可以使用原型(prototype)关键字将功能添加到JavaScript类中吗?

javascript - 如何通过css在输入框中应用Title Case

ios - 在 iOS 中本地存储 protobuf 对象

html - 将项目添加/附加到本地存储/网络存储?

javascript - 用javascript修改html

javascript - 当数组已经从其他地方异步更改时,防止更改数组吗?

javascript - 如何获取部分html标记作为变量