我有不同的localStorage,例如:
__user_information_1494653090436
__user_information_1494652962487
__user_information_1494653208375
其中
1494653090436,1494652962487和1494653208375
是不同的时间戳。
我正在考虑如何删除除最新时间戳之外的所有localStorage。任何帮助。
答案 0 :(得分:1)
您的第一步需要从localStorage获取所有这些密钥。这可以通过Object.keys
完成var allKeys = Object.keys(localStorage);
然后你找出哪一个是最新的并删除其余的
var sorted = allKeys
// Use regex to find your keys of interest
.map(key => key.match(/__user_information_([0-9]+)/))
// Filter out those that don't match
.filter(match => !!match)
// Sort by timestamp
.sort((a, b) => {
var a_ = parseInt(a[1]), b_ = parseInt(b[1]);
return a_ > b_ ? 1
: b_ > a_ ? -1
: 0;
});
// Remove all but last
for(var i = 0; i < sorted.length - 1; i++) {
localStorage.removeItem(sorted[i][0]);
}
答案 1 :(得分:0)
试试这个方法
if(new Date().getTime() > parseFloat(window.opt2))
window.localStorage.removeItem('homeCookie')
答案 2 :(得分:0)
最新的时间戳是higherstamp.simply删除更高的值
var local ={ //for example localstorage like this
date1:1494653090436,
date2:1494652962487,
date3:1494653208375,
}
var a =Object.values(local);
console.log(a.slice(0,a.indexOf(Math.max(...a))))
var removedkey = Object.keys(local)[a.indexOf(Math.max(...a))]//removed key
console.log(removedkey)
//window.localStorage.removeItem(removedkey)