提问人:AhsinSharif 提问时间:7/13/2023 最后编辑:Tamir AbutbulAhsinSharif 更新时间:7/13/2023 访问量:32
for 循环运行两次(数组内的对象)
For loop running twice (object inside of an array)
问:
我正在建立一个待办事项清单。
当用户输入内容并选择日期时填充列表的部分是这样的:
const renderToDoList = () => {
displayStuffJS.innerHTML = ''
for (let i = 0; i <= toDoList.length - 1; i ++){
let toDoObject = toDoList[i];
let input = toDoObject.input
let date = toDoObject.date
html = `<p style = 'display: inline-block;'>` + input + date +
'<button onclick = "deleteEntry(' + i + ')">Delete</button> + </p>';
displayStuffJS.innerHTML += HTML;
}
}
数组(里面有一个对象)在这里将数据放入其中:
const pushToList = () => {
displayStuffJS.innerHTML = "";
toDoList.push([{
input: inputValue.value, // the input where they put their entry
date: getDate.value // the value of the date chosen
}])
inputValue.value ="";
getDate.value = "";
renderToDoList();
}
当我运行此代码时,输入一些东西,选择一个日期并单击添加,它向我显示发生了两个循环,用两个对象填充数组,第一个对象是输入和日期的“”,数组中的第二个索引是带有我选择的输入和日期的对象。
它还会弹出两个删除按钮,但是当我单击它们时,它们都可以工作并删除所有内容。
现在很卡住了,已经坚持了一个小时,我所做的一切都不起作用。我只断断续续地编程了几个星期。
我尝试了几个随机的东西,但没有任何效果。
答:
1赞
display_name
7/13/2023
#1
您正在推送一个包含对象的数组,而不仅仅是将对象直接推入 toDoList 数组。这就是为什么你最终在数组中得到两个对象的原因。
const pushToList = () => {
displayStuffJS.innerHTML = "";
toDoList.push({
input: inputValue.value,
date: getDate.value
});
inputValue.value = "";
getDate.value = "";
renderToDoList();
}
这应该可以解决问题。
评论