IE11 中的 Array.map() "syntax Error",映射多个 JSON 对象字段



我有以下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 ({
...

最新更新