Как удалить одно выбранное значение из нескольких значений для одного и того же ключа из локального хранилища JavaScript - PullRequest
0 голосов
/ 27 мая 2019

Удалить одно значение из ключа, имеющего несколько значений, в локальном хранилище JavaScript.

$("ul").on("click", "li", function() {
  $(this).remove();
  localStorage.removeItem();
});

let itemsArray = localStorage.getItem('items') 
                    ? JSON.parse(localStorage.getItem('items')) 
                    : [];

localStorage.setItem('items', JSON.stringify(itemsArray));
const data = JSON.parse(localStorage.getItem('items'));

1 Ответ

0 голосов
/ 27 мая 2019

Локальное хранилище Строки . Ваш код использует JSON для хранения массива (в виде строки), что является распространенным и подходящим способом сделать это. Чтобы удалить только один элемент из массива, вы:

  1. Получить JSON из локального хранилища
  2. Разобрать JSON в массив
  3. Удалить элемент из массива
  4. Получить JSON для обновленного массива
  5. Хранить в локальном хранилище

Обычно я делаю Шаги 1 и 2 по прибытии на страницу и сохраняю результат. Тогда я сделаю Шаг 3 с результатом, который у меня уже есть, и затем верну его в хранилище. Вы делаете что-то подобное с itemsArray, так что-то вроде:

$("ul").on("click", "li", function() {
  itemsArray = itemsArray.filter(entry => {
    return /*...code to determine whether to keep `entry`, should
           return true if `entry` isn't for this `li`, false if `entry`
           IS for this `li` */;
  });
  $(this).remove();
  localStorage.setItem("items", JSON.stringify(itemsArray));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...