我有这段代码并且可以正常运行,但是唯一的问题是它并没有像我真正想要的那样为我节省本地存储。循环保留所有键,但最后一个值相同:
"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]);
}
}
答案 0 :(得分:1)
正如我的评论中所述,您正在使用内部循环的每次迭代覆盖每个键的值(并将它们全部设置为import org.koushik.javabrains.rest.MyDate;
数组中的最后一个值)。我认为您正在寻找将datos
数组中的每个键设置为与keys
数组中相同索引处的项相对应的值。例如:
datos