我有一个不同对象的数组,每个对象包含一个不同值的时间属性。
我想循环这个数组,里面有一个 setTimeout 函数,时间将是每个对象的时间属性。
因此,我想要的结果是
10 秒后,打印第一个对象的名称
20 秒后,打印第二个对象的名称。
...
...
5 秒后,打印最后一个对象的名称。
但是,下面的代码将累计执行 20s,即 time = 5s 时打印 obj 3 & 5,5s 后打印 obj 1,10s 后打印 obj 2 & 4。
const data = [
{name: "Warm up", timeFormat: "00:10", time: 10},
{name: "High interval", timeFormat: "00:20", time: 20},
{name: "Low Interval", timeFormat: "00:05", time: 5},
{name: "High interval", timeFormat: "00:20", time: 20},
{name: "Low Interval", timeFormat: "00:05", time: 5},
]
function renderTimer(data) {
for (let i = 0; i < data.length; i++) {
const eachName = data[i].name;
const eachTime = data[i].time;
setTimeout(() => {
console.log(eachName);
}, eachTime * 1000);
}
}
renderTimer(data);
我的代码有什么问题?或任何其他方式来实现我想要的结果?
非常感谢!
慕的地8271018
蝴蝶刀刀
紫衣仙女
繁花如伊
哆啦的时光机
随时随地看视频慕课网APP
相关分类