Javascript Array 工作正常,但如果你离开页面会重新开始

标签 javascript arrays forms

致力于学习 Javascript。我有这段代码,它工作正常。我的问题是,当我从表单创建数组时,离开页面并返回页面,向数组添加新数字,但数组以新数字重新开始。 有没有办法保留原始数组并向其推送新数字?或者这就是 Javascript 的工作方式吗?

const form = document.getElementById('form');
const show = document.getElementById('show');
let numArray = [];
//!number equals whatever is sent to this function
function getPushed(number) {
  numArray.push(number);
  localStorage.setItem('knife', JSON.stringify(numArray));
}

form.addEventListener('submit', (e) => {
  e.preventDefault();
  const numberToAdd = document.getElementById('numberAdd').value;
  parseInt(numberToAdd);
  show.innerHTML = numberToAdd;
  getPushed(numberToAdd);
});

谢谢你的时间

最佳答案

目前,您在每次加载页面时创建一个新数组,而不是使用保存在本地存储中的数组。这就是数组每次都重新开始的原因。

而是检查 'knife' 键中是否已经存储了数据。如果存在则使用它,否则默认返回到新创建的数组。

let numArray = [];
let storedData = localStorage.getItem('knife');
if (storedData !== null) {
  numArray = JSON.parse(storedData);
}

关于Javascript Array 工作正常,但如果你离开页面会重新开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61581941/

相关文章:

javascript - d3悬停在图例上,如何确定id

C 在编译时检查数组内容

javascript - sequelize 日期范围之间的查询(createdAt)

javascript - 每次页面刷新后事件监听器都会复合

java - 重载方法值 ofDim 与 scala 中的替代方案

javascript - 使用复选框过滤器创建/删除 div

javascript - FormData() 对象在 Django 后端始终为空

python - 将函数重写为类

javascript - 检查输入值是否为空并显示警报

javascript - 在 Firefox 和 IE 中禁用/禁用后退按钮的替代方法