javascript - 在 forEach 循环中访问数据

标签 javascript for-loop ecmascript-6

在我的主页上,我有一个 forEach 循环,它显示了业务模式下不同企业的促销事件。在我的 index.js Controller 中,我定义了如下促销(随机排序是随机排序,但此处不相关):

let promotions = [];
businesses.forEach(business => {
    promotions = promotions.concat(business.promotions);
});
shuffleArray(promotions);

在我的主页上,促销事件显示如下:

<div class="gold">
  <% promotions.forEach(function(promotion) { %>
    <img class='lazy business-advert-image' data-src="<%- cloudinary.url(promotion.public_id, {width: 450, height: 300, crop: 'pad', quality: 'auto', fetch_format: 'auto', flags: 'lossy'}) %>" alt="Business Advertising Promotion">
  <% }); %>
</div> 

这工作得很好,尽管除此之外,我还尝试覆盖促销事件来源的企业名称(这是一对多关系,即一个企业可能有 5 个不同的促销事件) )。然而,我正在努力解决如何从商业模式进入其他领域的问题。我尝试过:

promotion.business.name
business.name

这两个都会给出“业务未定义”错误;还有:

business.promotion.name

这会产生未定义的错误。

任何人都可以告诉我如何访问该名称(或业务模型中的其他字段)吗?谢谢

最佳答案

如果是我,我会在 Controller 中完成繁重的工作,并避免在 View 层中使用嵌套循环。

因此 Controller 方法将具有:

let promotions = [];
businesses.forEach(business => {
    let businessPromotions = business.promotions.map(promotion => {
        promotion.businessName = business.name;
        return promotion;
    })
  promotions = promotions.concat(businessPromotions);
});

然后在 View 中您可以通过 <%= promotion.businessName %> 访问企业名称(在 forEach 循环的促销中)

关于javascript - 在 forEach 循环中访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58837162/

相关文章:

javascript - 如何调用具有多个参数的 Angular 2 管道?

javascript - 意外的转译 ES6>ES5

javascript - 套套(套套...)

javascript - 如何连接变量名

javascript - 在自定义元素构造函数中创建 MutationObserver 导致内存泄漏?

javascript - 如何迭代 javascript 对象并对每个值运行函数

javascript - HTML5 缓存 list 文件本身不被缓存,并在每次资源加载时调用

javascript - Jquery 在 for 循环之后将 html 元素附加到 div,奇怪的行为

javascript - 将 JavaScript 数组转换为 JSON 对象

python - 设置字符串而系列是 bool 值?