如何从本地存储JavaScript的同一键的多个值中删除一个选定的值

时间:2019-05-27 09:57:47

标签: javascript local-storage

从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 :(得分:0)

本地存储存储字符串。您的代码使用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));
});