通过localstorage循环时输出奇怪

时间:2016-11-14 13:30:57

标签: javascript html5

我试图将项目插入localStorage并循环遍历它,这是代码

localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
for(var i in window.localStorage){
    console.log(i);
}

这是我在Firefox上获得的输出,它似乎在Chrome上正常工作

3
2
1
key
getItem
setItem
removeItem
clear
length

输出似乎是3个值+本地存储的函数和长度我只想输出我的值。 不能使用localstorage.length循环,因为我打算插入和删除值。

2 个答案:

答案 0 :(得分:0)

它类似于对象的循环方式。您需要遍历Object.hasOwnProperty

localStorage.setItem(1, 'Lorem');
localStorage.setItem(2, 'Ipsum');
localStorage.setItem(3, 'Dolor');
for (var i in window.localStorage) {
  if (window.localStorage.hasOwnProperty( i ))
    console.log(i);
}

我真的很惊讶你输出的结果,就像我尝试使用Chrome一样,我得到了这个:

preview

答案 1 :(得分:0)

你需要检查它是否不是物体的物体,例如长度,原型功能等...... 因此,在继续对象之前,需要在对象上调用hasOwnProperty。

for(var i in window.localStorage){
   if(window.localStorage.hasOwnProperty(i)) {
    console.log(i);
   }

}