我有以下angularjs函数,它适用于Chrome,FF,Safari,但不适用于IE11:
var dataListDecision = [];
$scope.readDataList = function ()
{
dataListDecision = results.data.map(el => ({
idApplication: el['Application Reference'],
field: 'Decision',
newValue: el['Decision Outcome']
}))
};
在IE11中,我收到控制台错误"SCRIPT1002:语法错误",并突出显示"=>"。
我搜索了一个解决方案,发现了这个问题/答案:IE11 中的 Array.map(( 错误
但这并不能解决我正在做的映射,即从现有 JSON 对象数组中选择多个字段来创建另一个 JSOn 对象数组。
我尝试通过以下方式实现此解决方案:
dataListDecision = results.data.map(function (el) {
return
({
idApplication: el['Application Reference'],
field: 'Decision',
newValue: el['Declaration Outcome'],
idUser: '0'
})
})
这将停止任何错误,但会导致数组填充正确数量的对象,但每个对象不包含任何数据,只是"未定义"。
IE不是ES6语法的忠实粉丝,因此您可以通过删除箭头符号来正确修复它。然而
JavaScript 会自动将;
插入它认为需要的地方。
在您的代码中
dataListDecision = results.data.map(function (el) {
return
({
...
它在return
后插入;
,将其转换为return;
,这就是为什么您的结果未定义的原因
要解决此问题,只需将其写为:
dataListDecision = results.data.map(function (el) {
return ({
...