IE for .map函数的JS语法错误

时间:2018-03-15 14:23:22

标签: javascript

我有一个javascript函数,它接受一个对象并将其所有的键名重新映射到我定义的其他名称。

这是功能:

var nameMap = {
    SubmissionID: 'SubmissionID',
    MetaCreatedDate: 'Date',
    MetaCreatedDate_: 'MetaCreatedDate_',
    Program: 'Program',
    ViewedByInvestigator: 'Viewed',
    DateInvestigatorViewed: 'DateInvestigatorViewed',
    CaseID: 'CaseID',
    SecondaryReviewer: 'SecondaryReviewer',
    Investigator: 'Investigator',
    InvManager: 'Manager',
    InvSrManager: 'SrManager',
    WorkflowAction: 'WorkflowAction',
    Adjacency: 'Adjacency',
    Jurisdiction: 'Jurisdiction',
    Actions: 'Actions',
    Note: 'Note',
    recid: 'SubmissionID'
}

// Converted names
data = data.map(item => renameKeys(item, nameMap));

此功能适用于Chrome / Firefox,但我遇到了在IE中使用它的问题。我在调用该函数的行上收到语法错误。

IE不支持映射还是以支持的格式编写?我如何在IE中解释这个问题?

1 个答案:

答案 0 :(得分:1)

您遇到此问题是因为IE11不支持Arrow函数语法。将来,您可以查看https://caniuse.com以确定您正在测试的浏览器是否支持您尝试使用的JS功能。 This is the link用于“胖箭”功能支持。

// Your code that isn't working:
// data = data.map(item => renameKeys(item, nameMap));

// Functioning code for IE11:
data = data.map(function(item) {
  return renameKeys(item, nameMap);
});