javascript - javascript 中的 for 循环和 localstorage 问题

标签 javascript local-storage

我有这段代码,它可以正常工作,但唯一的问题是它没有像我真正想要的那样为我保存本地存储。循环保留所有键,但具有相同的最后一个值:

"use strict";

var form = document.querySelector("#form");

form.addEventListener("submit", function() {
  var name = document.querySelector("#name").value;
  var year = document.querySelector("#year").value;
  var productor = document.querySelector("#productor").value;
  var director = document.querySelector("#director").value;

  if (name === "" || year == "" || productor == "" || director == "") {
  } else {
    let body = document.querySelector("tbody");
    var tr = document.createElement("tr");
    body.appendChild(tr);

    var datos = [name, year, productor, director];
    var keys = ["name", "year", "productor", "director"];
    for (var k in keys) {
      for (var d in datos) {
        localStorage.setItem(keys[k], datos[d]);
      }
    }


    for (let d in datos) {
      var td = document.createElement("td");
      tr.appendChild(td);
      var text = document.createTextNode(datos[d]);
      td.appendChild(text);
    }
  }
});

var clear = document.querySelector("#clear");

我想问题就在这里:

for (var k in keys) {
      for (var d in datos) {
        localStorage.setItem(keys[k], datos[d]);
      }
    }

最佳答案

正如我在评论中指出的那样,您将在内部循环的每次迭代中覆盖每个键的值(并将它们全部设置为 datos 数组中的最后一个值)。我认为您希望将 keys 数组中的每个键设置为与 datos 数组中同一索引处的项目相对应的值。例如:

const datos = ['Working Title', '2018', 'Patty Producer', 'Danny  Director'];
const keys = ['name', 'year', 'productor', 'director'];
keys.forEach((k, i) => {
  localStorage.setItem(k, datos[i]);
});
    
console.log(localStorage.getItem('name')); // Working Title

关于javascript - javascript 中的 for 循环和 localstorage 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53975612/

相关文章:

javascript - 如何从 Bootstrap 调整模态大小

javascript - 获取MySQL存储的字符串格式数组并转换为JSON对象数组

javascript - 火狐本地存储未定义

javascript - 为什么本地存储无法工作,即使它在页面刷新后不应打开?

javascript - JavaScript 中 CSV 数据的数据操作(填充、最小、最大)?

php - 前往 PHP 中的另一个页面

javascript - 将字符串传递给函数是按值复制还是按引用传递?

javascript - 如何在 JavaScript 中将值(如字符串句子)从一个页面移动到另一个页面,这些页面将存储在本地

javascript - 参数传递与本地存储

javascript - Chrome 应用丢失 localStorage