Array.map () «синтаксическая ошибка» в IE11, сопоставление нескольких полей объекта JSON - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующая функция 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: Синтаксическая ошибка» и выделяет «=>».

Я искал решение и нашел этот вопрос / ответ: Ошибка с Array.map () в IE11

Но это не относится к отображению.выбор нескольких полей из существующего массива JSON Object для создания другого массива JSOn Object.

Я пытался реализовать это решение следующим образом:

dataListDecision = results.data.map(function (el) {
   return
    ({
        idApplication: el['Application Reference'],
        field: 'Decision',
        newValue: el['Declaration Outcome'],
        idUser: '0'
    })
})

Это останавливает любые ошибки, но приводит к заполнению массива правильным количеством объектов, но каждый объектне содержит данных и просто "не определено".

1 Ответ

0 голосов
/ 07 июня 2018

IE не является большим поклонником синтаксиса ES6, поэтому вы исправили его, удалив обозначение стрелки.Однако

JavaScript автоматически вставляет ; там, где считает нужным.

В вашем коде

dataListDecision = results.data.map(function (el) {
   return
    ({
      ...

Он вставляет ; после return, превращая его в return;, поэтому ваш результат не определен

Висправить это просто написать это как:

dataListDecision = results.data.map(function (el) {
   return ({
     ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...