GTM 错误:计算 属性.ECMASCRIPT_2015 模式或更好:计算 属性

Error in GTM: Computed property.ECMASCRIPT_2015 mode or better: computed property

我想在 Google 跟踪代码管理器中 运行 使用以下功能,但出现以下错误:

This language feature is only supported for ECMASCRIPT_2015 mode or better: computed property.

下面是我正在尝试的函数 运行。我将如何更改它以与 GTM 一起使用? 谢谢

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});
  }, {});
}

您的主要问题似乎是:

How can I re-write {[key]: value} so that it is supported in older versions of JS

您可以 re-write 使用更长的(旧)版本

计算的 属性 语法
var obj = {};
obj[key] = value;

return Object.assign(accumulator, obj);