首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套forEach /等待嵌套完成

嵌套forEach /等待嵌套完成
EN

Stack Overflow用户
提问于 2019-11-08 13:51:00
回答 1查看 137关注 0票数 0

这个问题在很多方面都被问到了,但我找不到一个推论。

我有两个数组,我正在尝试比较这两个数组之间的日期,并构建一个列表,添加一个类,并在日期匹配时更改状态。我有一种感觉,forEach不是合适的工具。这就是我所拥有的。我知道在内部循环结束之前,外部循环还在继续,但我不确定如何修复它。似乎有一种不需要异步/等待的简单方法。

FIDDLE

代码语言:javascript
复制
// 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);
});
EN

回答 1

Stack Overflow用户

发布于 2019-11-08 14:44:46

在发布我的问题后不久(在我的头撞到墙上几个小时后)我就明白了这一点。

我只需在父循环内重置var,但在内循环外重置。

这是一个有效的FIDDLE

代码语言:javascript
复制
// 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);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58761124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档