javascript - Array.map() "syntax Error"in IE11,映射多个JSON Object字段

标签 javascript arrays angularjs internet-explorer-11

我有以下 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/

相关文章:

javascript - Vue - 观察 this.$el.clientWidth 的变化

javascript - angularjs在创建后将参数传递给模态

javascript - jQuery Accordion - 如何使用 URL 传递状态?

javascript - 更改选定复选框上的标签类别

arrays - 如何在 Snowflake SELECT 中展平一组 ARRAY_AGGS

php - 将数组转换为字符串

Javascript - 如何在表单上方显示数组的值?

javascript - 在 $http 响应拦截器中使用 $state.go

javascript - 生成 Angular 未知标签

javascript - scrollTop 按钮没有动画