我有一种情况需要使用具有不正确产品 ID 的电子商务 dataLayer 数组(目前没有可用于调整它的开发人员)。名称值的最后一部分实际上提供了正确的产品 ID。对于容易拆分的单个项目,然后弹出并获取值的最后一部分并用于id。
我还不够流利,无法成功完成多元素数组,而且由于它是针对 Google 标签管理器的,因此不支持 ES6。请注意,在我下面的示例数组中,id 元素值与 name 值的最后一部分匹配,但带有额外的不需要的字符。
获取名称(或 id)元素值作为数组很容易:
function() {
var products = {{ecommerce.checkout.products}};
return products.map(function(prod) { return prod.name; });
}
返回我预期的名称值数组:
[ "Webasto Jumper Harness SmarTemp Control - 5012138A", "Valvoline Premium Blue One Solution Gen2 10W30 - C891017GA", "Cummins Solenoid Bracket 3937235" ]
我最近尝试使用该产品名称数组失败,拆分并弹出每个项目以获取更新的数组:
function() {
var products = {{ecommerce.checkout.products}};
var ogNames = products.map(function(prod) { return prod.name; });
var newIDs = ogNames.forEach(function(item) { item.split(" ");
var last = item.pop(); return last});
return newIDs;
}
我希望得到的只是这个
[ "5012138A", "C891017GA", "3937235" ]
这是我正在使用的 ecommerce.checkout.products 数组的示例:
[
{
name: "Webasto Jumper Harness SmarTemp Control - 5012138A",
id: "5012138AWEBASTO",
price: "38.49",
brand: "Webasto",
category: "Webasto Parts",
variant: "",
quantity: 1
},
{
name: "Valvoline Premium Blue One Solution Gen2 10W30 - C891017GA",
id: "C891017GAVALVOLINE",
price: "17.5",
brand: "Valvoline",
category: "Valvoline Oil",
variant: "",
quantity: 1
},
{
name: "Cummins Solenoid Bracket 3937235",
id: "3937235CECO",
price: "144.8",
brand: "Cummins",
category: "Cummins Genuine Parts",
variant: "",
quantity: 1
}
]
*** 如果你能展示我如何从原始的 ecommerce.checkout.products 数组创建一个新数组,将所有 id 值替换为所有对应名称值的最后一部分,则在 (" ") 和 pop( ).
谢谢大家的观看!我感谢您的专业知识和您可以提供的任何见解。