我有以下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']
}))
};
在IE11I中出现“SCRIPT1002:语法错误”的控制台错误,并突出显示“=>”。
我搜索了一个解决方案并找到了这个问题/答案:Error with Array.map() in IE11
但这并没有解决我从现有JSON Object数组中选择多个字段来创建另一个JSOn Object数组的映射。
我试图通过以下方式实现此解决方案:
dataListDecision = results.data.map(function (el) {
return
({
idApplication: el['Application Reference'],
field: 'Decision',
newValue: el['Declaration Outcome'],
idUser: '0'
})
})
这会停止所有错误,但会导致数组填充正确数量的对象,但每个对象不包含任何数据,只是“未定义”。
答案 0 :(得分:3)
IE不是ES6语法的忠实粉丝,因此您通过删除箭头符号正确修复了它。然而
JavaScript会自动将;
插入其认为需要的位置。
在您的代码中
dataListDecision = results.data.map(function (el) {
return
({
...
它会在;
之后插入return
,将其转换为return;
,这就是您的结果未定义的原因
要解决这个问题,只需将其写为:
dataListDecision = results.data.map(function (el) {
return ({
...