Google Chrome中未定义Map()

Nic*_*ick 4 javascript google-chrome map ecmascript-harmony

我一直在寻找答案,但我只得到有关Google Maps API的结果.我正在尝试使用JavaScript中的地图将整数映射到字符串.在Firefox中一切正常,但在Chrome中我在控制台中收到错误消息:

未捕获的ReferenceError:未定义Map

下面是一段参考代码:

var NameMap;
var DistanceMap;

function FillMaps(){
    NameMap = new Map();
    DistanceMap = new Map();

    NameMap.set(01, "Araba/Álava");
}

function CheckName(_field){
    var value = document.getElementsByName(_field.name).item(0).value;
    var location = value.charAt(0) + value.charAt(1);
    var result = NameMap.get(parseInt(location));
    if(result == undefined){
        result = "Unknown";
    }
    document.getElementById('loc').innerHTML = result;
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*b W 6

一些ES和声功能,包括 Map()2011年底,Chrome中已经存在.默认情况下它只是禁用.

要启用此功能,请访问chrome://flags/并启用"启用实验性JavaScript".然后重新启动浏览器并享受新功能.

另一种方法是--js-flags=--harmony在命令行上传递标志.例如:

chromium --js-flags=--harmony
chrome.exe --jsflags=--harmony
Run Code Online (Sandbox Code Playgroud)


小智 0

为什么不使用简单的数组呢?

\n\n
var NameMap;\nvar DistanceMap;\n\nfunction FillMaps(){\n    NameMap = new Array();\n    DistanceMap = new Array();\n\n    NameMap[01]="Araba/\xc3\x81lava";\n\n}\n\nfunction CheckName(_field){\n    var value = document.getElementsByName(_field.name).item(0).value;\n    var location = value.charAt(0) + value.charAt(1);\n    var result = NameMap[parseInt(location)];\n    if(result == undefined){\n        result = "Unknown";\n    }\n    document.getElementById(\'loc\').innerHTML = result;\n}\n
Run Code Online (Sandbox Code Playgroud)\n