这个问题在很多方面都被问到了,但我找不到一个推论。
我有两个数组,我正在尝试比较这两个数组之间的日期,并构建一个列表,添加一个类,并在日期匹配时更改状态。我有一种感觉,forEach不是合适的工具。这就是我所拥有的。我知道在内部循环结束之前,外部循环还在继续,但我不确定如何修复它。似乎有一种不需要异步/等待的简单方法。
// main event loop
events.forEach(event => {
let {
date
} = event;
// presaleEvent loop
presaleEvents.forEach(presaleEvent => {
let {
presaleDate
} = presaleEvent;
if (presaleDate === date) {
status = 'PRESALE EVENT';
eventClass = 'presale';
}
});
// only 3, 5 & 6 should be presale events
let eventNode = `<li class="event ${eventClass}">${status}</li>`;
$(eventsList).append(eventNode);
});发布于 2019-11-08 14:44:46
在发布我的问题后不久(在我的头撞到墙上几个小时后)我就明白了这一点。
我只需在父循环内重置var,但在内循环外重置。
这是一个有效的FIDDLE。
// main event loop
events.forEach(event => {
let {
date
} = event;
status='EVENT'; // reset the status
eventClass=''; // reset the eventClass
// presaleEvent loop
presaleEvents.forEach(presaleEvent => {
let {
presaleDate
} = presaleEvent;
if (presaleDate === date) {
status = 'PRESALE EVENT';
eventClass = 'presale';
}
});
// only 3, 5 & 6 should be presale events
let eventNode = `<li class="event ${eventClass}">${status}</li>`;
$(eventsList).append(eventNode);
});https://stackoverflow.com/questions/58761124
复制相似问题