我已经在本地存储中动态创建了编号数组:
<select>
<option value="">SELECT MONTH</option>
<option value="2019-10">October-2019</option>
<option value="2019-11">November-2019</option>
<option value="2019-12">December-2019</option>
<option value="2019-01">January-2019</option>
<option value="2019-02">February-2019</option>
<option value="2019-03">March-2019</option>
<option value="2019-04">April-2019</option>
<option value="2019-05">May-2019</option>
<option value="2019-06">June-2019</option>
<option value="2019-07">July-2019</option>
<option value="2019-08">August-2019</option>
<option value="2019-09">September-2019</option>
</select>
,我想递归地将它们全部拉出。不必花哨。我不知道该怎么做。我有:
key: array1 value: [{foo, bar, etc}]
key: array2 value: [{bar, foo, etc}]
但是我知道这是不对的。本地存储甚至都不是数组。 有任何想法吗? 不知道如何处理这样的事实:它们的名称可以是任意数量。
答案 0 :(得分:4)
您应该能够使用Object.keys()遍历各个键并在每个键上调用getItems()。
Object.keys(localStorage).forEach(data =>
{
let item = localStorage.getItem(data);
console.log(item); // item is the item from storage.
});
答案 1 :(得分:2)
您可以使用Object.values
方法或Object.entries
将其转换为数组,具体取决于您发现更有用的内容。
所以会是这样:
for (array of Object.values(localStorage)) {
console.log(array);
}
答案 2 :(得分:2)
将数组作为对象存储在本地存储中
localStorage.setItem("array1", ["foo", "bar", "etc"])
并获得像这样的数组元素
for (var i = 0; i < localStorage.length; i++){
console.log(localStorage.key(i), localStorage.getItem(localStorage.key(i)));
}