Javascript 访问forEach循环中的数据

Javascript 访问forEach循环中的数据,javascript,for-loop,ecmascript-6,Javascript,For Loop,Ecmascript 6,在我的主页上,我有一个forEach循环,它显示了不同商业模式下的促销活动。在我的index.js控制器中,我的升级定义如下(洗牌是一种随机排序,但与此无关): 在我的主页上,促销活动如下所示: <div class="gold"> <% promotions.forEach(function(promotion) { %> <img class='lazy business-advert-image' data-src="<%- cloudina

在我的主页上,我有一个forEach循环,它显示了不同商业模式下的促销活动。在我的index.js控制器中,我的升级定义如下(洗牌是一种随机排序,但与此无关):

在我的主页上,促销活动如下所示:

<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> 
这两个都给出了“业务未定义”错误;而且:

business.promotion.name
它给出了一个未定义的错误


谁能告诉我如何访问名称(或业务模型中的其他字段)?谢谢

首先,您还需要从服务器发送企业名称。您现在只是阵列中的促销活动。 促销=促销.concat(business.promotions); 如上所示,将数据添加到数组中

array=[
promotionArray1[5],
promotionArray2[5]
]
promotions = promotions.concat(business);
array=[
business1.promotionArray1[5],
business2.promotionArray2[5]
]
此结构没有企业名称。它只有促销。因此您需要像这样更改它 应该是这样的

array=[
promotionArray1[5],
promotionArray2[5]
]
promotions = promotions.concat(business);
array=[
business1.promotionArray1[5],
business2.promotionArray2[5]
]
这意味着这个时间数组是这样的

array=[
promotionArray1[5],
promotionArray2[5]
]
promotions = promotions.concat(business);
array=[
business1.promotionArray1[5],
business2.promotionArray2[5]
]
现在在ejs中,您需要放置嵌套循环来访问所有数据

<div class="gold">
<% promotions.forEach(function(business) { %>
<% business.forEach(function(promotion1) { %>
 put your html here.
 business.name
 promotion1.name
 <% }); %>
<% }); %>
</div> 

把你的html放在这里。
business.name
促销1.name

如果是我,我会在您的控制器中执行繁重的操作,并避免在视图层中使用嵌套循环

因此,控制器方法将具有:

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

然后在视图中,您可以通过
(在promotions forEach循环中)访问企业名称谢谢您的回复。你能澄清一下你所说的促销1和促销2是什么意思吗?因为问题不是访问多个促销,而是访问当前显示的促销的业务名称。我是不是误解了什么?谢谢谢谢,不过当我使用该代码时,我得到了业务。forEach不是一个函数谢谢@nax3t,这正是我要找的!