JavaScript reduce() 方法中的解构不适用于 Internet Explorer 11?
JavaScript destructuring in reduce() method not working with Internet Explorer 11?
我使用 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: ':' expected
调试器告诉我这里应该是“:”:
ergebnisMonat = data.reduce((r, {
jahr**here ERROR**,
monat
reduce()
方法从版本 9 开始与 IE 兼容。所以我不知道为什么它在 Firefox 中有效,而在 IE 11 中无效。知道吗?
感谢您的帮助。
根据 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;
}, []);
我使用 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: ':' expected
调试器告诉我这里应该是“:”:
ergebnisMonat = data.reduce((r, {
jahr**here ERROR**,
monat
reduce()
方法从版本 9 开始与 IE 兼容。所以我不知道为什么它在 Firefox 中有效,而在 IE 11 中无效。知道吗?
感谢您的帮助。
根据 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;
}, []);