Javascript 如何循环一个函数,每次循环时都更改变量,直到使用了所有变量?
我想循环一个函数,每次运行时都改变变量,直到所有变量都被使用。目前,我已经将此功能复制了20多次,每次都更改了“每周一次”Javascript 如何循环一个函数,每次循环时都更改变量,直到使用了所有变量?,javascript,arrays,if-statement,Javascript,Arrays,If Statement,我想循环一个函数,每次运行时都改变变量,直到所有变量都被使用。目前,我已经将此功能复制了20多次,每次都更改了“每周一次” var a_week = "yes"; var b_week = "no"; var c_week = "yes"; function onload() { if a_week = "yes" { document.getElementById("dot").classList.add('open'); } else if a_w
var a_week = "yes";
var b_week = "no";
var c_week = "yes";
function onload() {
if a_week = "yes" {
document.getElementById("dot").classList.add('open');
}
else if a_week = "no" {
document.getElementById("dot").classList.add('closed');
}
}
我会为你的周做一个数组,让你的
onload
函数接受一个参数,然后循环遍历它们
const weeks = [true, false, false, true];
function onload(week) {
if(week) {
document.getElementById("dot").classList.add('open');
} else {
document.getElementById("dot").classList.add('closed');
}
}
weeks.forEach(onload);
您可以在上查看forEach的文档
对于每个不同的星期,您可能不打算每次都更改相同的HTML元素。上面的代码将继续向相同的#dot
元素添加类。如果要将多个元素作为目标,可以保存元素数组或元素选择器。或者将其与我的旧答案中的对象中的数据相结合。您没有共享您的HTML结构,因此我不确定构造DOM操作的最佳方法是什么
另外,onload
对于一个函数来说并不是一个好名字,因为它可能被认为与浏览器的事件有关
旧问题的答案: 似乎您应该使任何
sau g_week
表示一个对象,然后循环遍历它们的数组(或者,如果需要通过键引用它们,则用它们生成一个映射/对象)。我不确定您的上下文是什么,但我将编写一些字段名,并假设您正在处理位置
const locations = [
{
isOpen247: true,
isPermanentlyClosed: false,
openTime: new Date(),
closeTime: new Date(),
},
{
isOpen247: true,
isPermanentlyClosed: true,
openTime: new Date(),
closeTime: new Date(),
},
];
然后,您可以在阵列中循环并执行所需的操作:
locations.forEach(location => {
if(location.isOpen247) {
// do stuff
} else {
// do other stuff
}
});
你的问题不清楚,你能试着扩展你的问题吗?@AdamH,我已经更新了代码来简化我正在做的事情。我想像循环一样运行函数,在每个循环中改变变量,直到所有变量都被处理。使用a_周,然后循环使用b_周,等等。