删除LocalStorage

时间:2017-05-13 06:52:48

标签: javascript jquery html5

我有不同的localStorage,例如:

__user_information_1494653090436
__user_information_1494652962487
__user_information_1494653208375

其中

  

1494653090436,1494652962487和1494653208375

是不同的时间戳。

我正在考虑如何删除除最新时间戳之外的所有localStorage。任何帮助。

3 个答案:

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