Как удалить выделенный объект из хранилища - PullRequest
0 голосов
/ 06 ноября 2018

Я ищу способ удалить один объект в массиве, без необходимости удалять все локальное хранилище, например, используя local.storage.clear

Я пытался использовать Local.storage.removeItem, но это не сработало. Я также использовал JSON.stringify, чтобы установить пункт, есть ли альтернатива? Спасибо!

<!DOCTYPE html>
<html>
<body>
    <p id="demo"></p>
    <input id="click"type="checkbox" onclick="savelocalstorage()">
    </button>

    <script>
        var n=0;

        function savelocalstorage()
        {
            var myarray = [
                { format: "jpg", name: "Alice" },
                { format: "jpg", name: "Jack" },
            ];

            if (n % 2 == 1) {
                document.getElementById("click").checked = false;
                localStorage.removeItem(myarray[0]);
            } else {
                document.getElementById("click").checked = true;
                localStorage["myarray"] = JSON.stringify(myarray[0]);
            }

            n++;
        }
    </script>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Вы делаете это:

localStorage.removeItem(myarray[0]);

Но myarray[0] - это объект, а ключ, в котором вы храните объект, - это строка "myarray". Используйте строку в обоих случаях.

0 голосов
/ 06 ноября 2018

Вам необходимо получить элемент из локального хранилища с удаленным первым элементом и сохранить его обратно

var n = 0;

function savelocalstorage() {
  var myarray = [{
      format: "jpg",
      name: "Alice"
    },
    {
      format: "jpg",
      name: "Jack"
    }
  ];

  if (n % 2 == 1) {
    document.getElementById("click").checked = false;
    // get the storage & remove the first element
    let itm = JSON.parse(localStorage.getItem('myarray')).shift();
    localStorage.setItem('myarray', JSON.stringify(itm));

  } else {
    document.getElementById("click").checked = true;
    localStorage.setItem("myarray",JSON.stringify(myarray[0]));
  }
  n++;
}
<p id="demo"></p>
<input id="click" type="checkbox" onclick="savelocalstorage()">
0 голосов
/ 06 ноября 2018

Ключом для localstorage должна быть строка, вы передаете объект, который не может быть ключом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...