Javascript 本地存储不保留值

Javascript 本地存储不保留值,javascript,Javascript,我有一个表单,每当我添加信息时,它都应该保存在本地存储中,这样我就不能从全局变量中检索它 但在刷新时,它只返回我做的最后一次输入,并没有真正存储任何内容。 请帮忙 let todoList = [localStorage.getItem("list")] || []; newTask.addEventListener("submit", addList) function addList(e){ e.preventDefault(); let

我有一个表单,每当我添加信息时,它都应该保存在本地存储中,这样我就不能从全局变量中检索它

但在刷新时,它只返回我做的最后一次输入,并没有真正存储任何内容。 请帮忙

let todoList = [localStorage.getItem("list")] || [];


newTask.addEventListener("submit", addList)

function addList(e){
  e.preventDefault();
  let input = document.querySelector(".new-list input")

  newListName = input.value;
  input.value = ""
  newTaskList.push(newListName)

  //todoList.push(newListName)
  localStorage.setItem("list", newListName);
}

将数组存储为字符串

为了在数组中使用本地存储,我们需要使用一种方法将数组转换为字符串,该方法使我们以后很容易取消插入。将数组转换为字符串的方法是使用JSON stringify函数

假设您有以下名为movies的数组:

var movies = ["Reservoir Dogs", "Pulp Fiction", "Jackie Brown", 
              "Kill Bill", "Death Proof", "Inglourious Basterds"];
使用stringify函数,可以使用以下语法将电影数组转换为字符串:

JSON.stringify(movies)
由于我们希望将所有内容都存储到本地存储中,因此当您将所有内容放在一起时,将得到以下结果:

var movies = ["Reservoir Dogs", "Pulp Fiction", "Jackie Brown", 
              "Kill Bill", "Death Proof", "Inglourious Basterds"];
 
localStorage.setItem("quentinTarantino", JSON.stringify(movies));
请注意,我的数据存储在名为quentinTarantino的键下

检索您的数据

存储数据只是乐趣的一部分。这一切的一个非常重要的部分是能够检索数据并像使用数组一样重新使用它。这涉及到首先以字符串形式检索数据:

var retrievedData = localStorage.getItem("quentinTarantino");
我的retrievedData变量存储本地存储项返回的值,该项的键为quentinTarantino。此数据当前为字符串形式

要将字符串转换回对象,请使用JSON解析函数:

var movies2 = JSON.parse(retrievedData);

完成此操作后,movies2变量将指向解析后的数据,正如您所猜测的,它是一个数组。您可以调用movies2数组对象上的所有数组方法,就像您总是调用任何旧数组一样。

localStorage实际上会返回一个字符串,可能之前会尝试解析它:)