You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建GTM数据层变量提取产品数组的最后一项

报错原因

你之前配置products.slice(-1).name返回undefined的核心原因:

  • Array.slice(-1) 返回的是包含最后一个元素的新数组,而非元素本身,需要先取数组的第0位才能拿到产品对象
  • GTM原生「数据层变量」类型不支持直接调用数组方法做链式操作,因此直接在数据层变量的配置框里写该表达式无法生效

解决方案(推荐用方案1,最简稳妥)

方案1:使用自定义JavaScript变量

在GTM中新建变量,类型选择「自定义JavaScript」,粘贴以下代码即可:

function() {
  // 此处{{DLV - products}}请替换为你自己配置的products数组对应的数据层变量名
  const products = {{DLV - products}};
  // 异常兜底,避免数据层未推送products时出现报错
  if (!Array.isArray(products) || products.length === 0) return undefined;
  // 取数组最后一位元素的name属性,要取其他属性换成对应字段即可
  return products[products.length - 1].name;
}

方案2:多变量组合(不推荐)

如果不想写JS逻辑,也可以拆分多个变量实现:

  1. 新建数据层变量,配置products.length,命名为DLV - products数组长度
  2. 新建自定义JavaScript变量,返回动态索引:
function() {
  return {{DLV - products数组长度}} - 1;
}
  1. 新建数据层变量,配置为products.{{你上一步创建的索引变量名}}.name即可

内容的提问来源于stack exchange,提问作者bledley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:15:03