Ошибка при предобработки Zabbix Javascript

Есть код, который выполняет сложение значений элементов {#BSNDOT11ESSNUMBEROFMOBILESTATIONS} и создает новый объект JSON с суммой:

var data = [
   {
  "{#SNMPINDEX}":"1",
  "{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"3"
   },
   {
  "{#SNMPINDEX}":"2",
  "{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"2"
   },
   {
  "{#SNMPINDEX}":"3",
  "{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"3"
   },
   {
  "{#SNMPINDEX}":"4",
  "{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"2"
   }
];

var result = data.reduce((acc, item)=> {acc[0]["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"] =""+(+(acc[0]["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"]) + (+(item["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"]))); return acc}, [{
    "{#SNMPINDEX}":"1",
    "{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"0"
   }]);


console.log(result);

Этот код не работает в предобработке Zabbix javascript, там используется ducktape, ошибка "SyntaxError: parse error (line 2)"

В самом Zabbix этот код выглядит вот так:

function (value) {
var data = JSON.parse(value);
var result = data.reduce((acc, item)=> {acc[0]["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"] =""+(+   (acc[0]["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"]) + (+(item["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"]))); return acc}, [{
"{#SNMPINDEX}":"1",
"{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"0"
}]);

return JSON.stringify(result);
}

Line 2, это:

var result = data.reduce((acc, item)=> {acc[0]["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"] =""+(+(acc[0]["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"]) + (+(item["{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}"]))); return acc}, [{"{#SNMPINDEX}":"1","{#BSNDOT11ESSNUMBEROFMOBILESTATIONS}":"0"}]);


Ответы (1 шт):

Автор решения: vsemozhebuty

Это только догадка. Поскольку ducktape, судя по документации, поддерживает JS после 5й версии лишь частично, основное подозрение падает на стрелочную функцию. Попробуйте заменить фрагмент

data.reduce((acc, item)=> {

на фрагмент

data.reduce(function (acc, item) {
→ Ссылка