我使用JavaScript reduce()
方法来计算有多少条目具有相同的值。
如果我在Firefox 52浏览器中使用该代码,一切正常。但是,如果我使用Internet Explorer 11中的代码,调试器告诉我,脚本中存在错误:
const data = [{
'jahr': '2017',
'monat': '3'
},
{
'jahr': '2017',
'monat': '3'
},
{
'jahr': '2017',
'monat': '4'
}
];
map = new Map,
ergebnisMonat = data.reduce((r, {
jahr,
monat
}) => {
var datum = [monat, jahr].join('-');
if (!map.has(datum)) {
map.set(datum, {
datum,
anzahl: 0
});
r.push(map.get(datum));
}
map.get(datum).anzahl++;
return r;
}, []);
console.log(ergebnisMonat);

SCRIPT1003:':'预期
调试器告诉我":"预计在这里:
ergebnisMonat = data.reduce((r, {
jahr**here ERROR**,
monat
从版本9开始,reduce()
方法与IE兼容。所以我不知道为什么它在Firefox中工作而不在IE 11中。任何想法?
感谢您的帮助。
答案 0 :(得分:2)
根据 destructuring docs ,它在IE中根本不受支持,因此
data.reduce((r, {
jahr,
monat
})
不受支持, Arrow functions 在IE中没有支持,因此您需要使用传统的功能定义
ergebnisMonat = data.reduce(function(r, obj){
var datum = [obj.monat, obj.jahr].join('-');
if (!map.has(datum)) {
map.set(datum, {
datum,
anzahl: 0
});
r.push(map.get(datum));
}
map.get(datum).anzahl++;
return r;
}, []);