Javascript 使用JS将值追加到新数组中

Javascript 使用JS将值追加到新数组中,javascript,html,local-storage,Javascript,Html,Local Storage,我正在尝试使用HTML、JS和本地存储构建一个表单(更多用于个人学习),以: 从用户处获取输入 显示来自用户的输入 将数据存储在本地存储器中 为用户提供一个选项,使其可以删除某个项目或删除所有内容 问题: 本地存储器始终存储输入的最新值,而不是整个阵列。出于某种原因,推送数组没有附加所有值。我错过了什么 罢工一次对所有人都有效,但不是对每个选项都有效。每个选项的操作方法是什么 函数显示(){ var master_list=[]; var data=document.getElementB

我正在尝试使用HTML、JS和本地存储构建一个表单(更多用于个人学习),以:

  • 从用户处获取输入
  • 显示来自用户的输入
  • 将数据存储在本地存储器中
  • 为用户提供一个选项,使其可以删除某个项目或删除所有内容
  • 问题:

    • 本地存储器始终存储输入的最新值,而不是整个阵列。出于某种原因,推送数组没有附加所有值。我错过了什么
    • 罢工一次对所有人都有效,但不是对每个选项都有效。每个选项的操作方法是什么
    函数显示(){
    var master_list=[];
    var data=document.getElementById('to_do')。值;
    主列表推送(数据);
    document.getElementById('form_data')。innerHTML+=“
  • ”+data+“
  • ”; console.log(“数据为”+数据); 控制台日志(“主列表为”+主列表); //storeData(主目录); } 函数删除(){ var list=document.getElementById('form_data').innerText; //console.log(“数据为”+列表); document.getElementById('form_data')。innerHTML=list.strike(); } 功能存储数据(主列表){ setItem(“master_list”,JSON.stringify(master_list)); }
    
    待办事项应用程序
    欢迎使用“待办事项”应用程序
    输入您的待办事项:
    添加
    新增项目包括:
    
    清除所有
    您必须使用
    localStorage.getItem
    检查
    master\u list
    项是否已存在于localStorage中(如果请求的项不存在,它将实际返回null)


    请每个帖子只问一个问题。另请注意,
    strike()
    已被删除。将
    master\u列表
    移到
    display()
    函数外部作为全局变量。现在您每次都在重置列表,这解释了为什么只有一个带有一个条目的数组存储在
    localStorage
    中。请将主列表声明为全局变量,并在显示函数之外。不要声明全局变量。应避免使用全局变量。你不需要重新构建你的数组,你需要从中加载它,还要看看如果你把这两个问题放在一起,它会给你解决这个问题所需要的一切
    const storeData= master_list => {
        let item = localStorage.getItem("master_list");
        if ( ! item ) {
            localStorage.setItem("master_list", master_list);
            return;
        }
        item = JSON.parse("master_list");
        item.concat(master_list); // or master_list.concat(item) depending on your needs
        localStorage.setItem("master_list", item);
    };