我有以下 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:语法错误”的控制台错误,它突出显示了“=>”。
我搜索了一个解决方案并找到了这个问题/答案:Error with Array.map() in IE11
但这并没有解决我正在做的从现有 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 ({
...
关于javascript - Array.map() "syntax Error"in IE11,映射多个JSON Object字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50738954/