Ich habe ein Datalayer-Kaufobjekt mit zwei Produkten (aber der Benutzer kann mehr Produkte kaufen):
Dies ist ein Array, das ich habe:
[
{
name: "Product1",
id: 5986,
price: 980,
brand: "brand1",
category: "Cable & Adapter",
quantity: 1,
dimension51: "",
dimension52: "In Stock",
metric11: 980,
variant: 5771
},
{
name: "Prooduct2",
id: 5987,
price: 980,
brand: "brand2",
category: "Cable & Adapter",
quantity: 1,
dimension51: "",
dimension52: "In Stock",
metric11: 980,
variant: 5770
}
]
Ich möchte eine JS-Funktion erstellen, die von jedem Produkt ProductID und VariantID verkettet und eine Liste von productid_variantid zurückgibt.
Ich möchte über js Folgendes tun:
5986_5771, 5987_5770
Ich habe dieses JS bereits, aber es gibt im Google Tag Manager undefiniert zurück.
function f(){
var p = {{dataLayer.ecommerce.purchase.products}};
var result = [];
for(var i=0;i<p.length;i++){
result.push(p[i].id.concat('_',p[i].variant));
}
return result.join(',');
}
Lösung des Problems
Die Funktion f
kann durch Folgendes ersetzt werden:
function f(){
var p = {{dataLayer.ecommerce.purchase.products}};
return p.map(({id, variant}) => `${id}_${variant}`).join(',');
}
(Die {{dataLayer.ecommerce.purchase.products}}
Syntax in Ihrem Beispiel ist in JavaScript nicht gültig, aber ich vertraue darauf, dass diese Zeile für Sie funktioniert.)
Keine Kommentare:
Kommentar veröffentlichen