Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

248
Vistas
Convierta la variable de matriz en otra variable con valores separados por comas en Google Tag Manager con Javascript

Estoy tratando de convertir la variable de capa de datos que está en formato de matriz en otra variable que debería tener valores separados por comas.

Tengo un formato de matriz como este: -

 var data= [ { name: "productname", id: "1356", price: "0.00", category: "Health", position: "1", list: "New Products", stocklevel: "20", brand: "Health" }, { name: "productname2", id: "5263", price: "0", category: "Hair", position: "2", list: "New Products", stocklevel: "", brand: "Hair" },]

Que es lo que estoy tratando de convertir en valores separados por comas como a continuación.

 Product1: "productname", Product1Price: 0.00, Product1id: "1356", Product1brand: "health", Product1stocklevel: "20", Product2: "productname2", Product2price: 0, Product2id: "5263", Product2brand: "hair", Product2stocklevel: "",

Esto es lo que probé con la función javascript: -

 data.map((e, i) => { return Object.keys(e).map(p => `Product${i+1}${p=="name"?"":p}:"${e[p]}"`).join(",\n")}).join(",\n")

Con esta función, puedo obtener fácilmente lo que quiero.

Pero de alguna manera cada vez que traté de poner esta función en la variable gtm (que es una variable javascript personalizada)

Entonces me enfrento a un problema en la misma variable que se muestra a continuación: -

 Error at line 7, character 14: This language feature is only supported for ECMASCRIPT_2015 mode or better: template literal.

El código real en la variable javascript personalizada está aquí.

 function(){ data = {{Custom.orderData.items}}; var dataByComa = '' var Values = data.map(function (p, i) { return Object.keys (data[i]).map (function (k) { return Product ${p.position} ${k}: ${JSON.stringify(data[i][k])}`;});}).map(function (v) { return v.join(",\n"); }); var commaValues = Values.join(",\n"); return commaValues; } //Custom.orderData.items is datalayer variable which contains data in array format.

ingrese la descripción de la imagen aquí

Entonces, la pregunta es por qué esta función anterior no funciona en gtm y da algún error. Su ayuda será apreciada. Gracias :)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

prueba este bucle simple

 const data= [ { name: "productname", id: "1356", price: "0.00", category: "Health", position: "1", list: "New Products", stocklevel: "20", brand: "Health" }, { name: "productname2", id: "5263", price: "0", category: "Hair", position: "2", list: "New Products", stocklevel: "", brand: "Hair" }] let dataByComa = ''; data.forEach((d, i)=> { Object.keys(d).forEach((key)=> { dataByComa += `product${i+1}_${key}=${d[key]}, \n` }); }) console.log(dataByComa)

about 4 years ago · Juan Pablo Isaza Denunciar

0

El error se debe únicamente a que las funciones de flecha solo se pueden usar con ECMAScript 15 en adelante. No tiene relación con Google Tag Manager .

 var data = [ { name: "productname", id: "1356", price: "0.00", category: "Health", position: "1", list: "New Products", stocklevel: "20", brand: "Health", }, { name: "productname2", id: "5263", price: "0", category: "Hair", position: "2", list: "New Products", stocklevel: "", brand: "Hair", }, ]; const commaValues = data .map(function (p, i) { return Object.keys(data[i]).map(function (k) { return "Product" + p.position + k + ": " + JSON.stringify(data[i][k]); }); }) .map(function (v) { return v.join(",\n"); }); console.log(commaValues.join(",\n"));

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda