Tengo la siguiente función que quiero ejecutar dentro de Google Tag Manager pero recibo el siguiente error:
Esta función de idioma solo es compatible con el modo ECMASCRIPT_2015 o mejor: propiedad calculada.
A continuación se muestra la función que estoy tratando de ejecutar. ¿Cómo modificaría esto para que funcione con GTM? Gracias
var compactObject = function(data) { if (typeof data !== 'object') { return data; } return Object.keys(data).reduce(function(accumulator, key) { var isObject = typeof data[key] === 'object'; var value = isObject ? compactObject(data[key]) : data[key]; var isEmptyObject = isObject && !Object.keys(value).length; if (value === undefined || isEmptyObject) { return accumulator; } return Object.assign(accumulator, {[key]: value}); }, {}); }Su pregunta principal parece ser:
¿Cómo puedo volver a escribir
{[key]: value}para que sea compatible con versiones anteriores de JS?
Puede volver a escribir la sintaxis de propiedad calculada usando la versión más larga (heredada)
var obj = {}; obj[key] = value; return Object.assign(accumulator, obj);