如何使用 JavaScript 查询数据层中的特定项目

How do I query a specific item in the dataLayer with JavaScript

我正在尝试从 dataLayer 中提取特定项目的值。这实际上有效: dataLayer[26].discountCode 但问题是数组中的项目位置发生变化(有时是 26,其他是 27、28) - 我的问题是我怎么总是选择正确的物品。我正在寻找的事件对是:

[array #]: {event: "e_orderDiscount", discountCode: "20"}

编辑: 我尝试了:Tried this: const company = dataLayer.find(e => e.event === 'company_name'); const thename = company.company_name; 但结果不是我所期望的。这个 dataLayer.find(e => e.company_name).company_name 最终是我需要的解决方案。

如果您要搜索某个项目,可以使用 Array.prototype.find:

// Watch out, item could be undefined if there are none that match
const item = dataLayer.find(e => e.event === 'e_orderDiscount');
const code = item.discountCode;

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

在评论中来回反复之后,这是有效的解决方案:

dataLayer.find(e => e.company_name).company_name