Как мне получить все элементы из localstorage, чтобы и 999 и 1 индекс отображался

Я добавляю в localstorage элемент с индексом например 12. И если я проверяю length localstorage я получаю например 1. И тогда мне показывает что элемент не найден. Как мне получить все элементы из localstorage, чтобы и 999 и 1 индекс отображался. Постоянно натыкаюсь на эту проблему. Во всех прошлых проектах так и не решил.

async function setLocalStorage() {
    localStorage.setItem(index, item.id);
    console.log(localStorage.length);
    let i = 0;
    for (i; i <= localStorage.length; i++) {
        console.log(localStorage[i]);
    }
}


Ответы (1 шт):

Автор решения: Хацкер
for(var i=0; i<10; i++){
  var id = i;
  var item = i*10;
  localStorage.setItem(id, item);
}
for(var item in localStorage){
  console.log(item);
}

!НО, как я писал выше, localStorage - объект, со своими свойствами и методами. Поэтому, в консоль выводятся не только установленные нами свойства. Я бы поступил так:

var arr = []
for(var i=0; i<10; i++){
  var item = i*10;
  arr.push(item);
}
arr = JSON.stringify(arr);
localStorage.setItem('items', arr);
    
var getArr = localStorage.getItem('items');
getArr = JSON.parse(getArr);

for(var i=0; i<getArr.length; i++){
  console.log(getArr[i]);
}

Здесь необходимо перед записью преобразовать наш массив в JSON, иначе он запишется как строка

→ Ссылка