Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Chrome中未定义Map()_Javascript_Google Chrome_Map_Ecmascript Harmony - Fatal编程技术网

Javascript Google Chrome中未定义Map()

Javascript Google Chrome中未定义Map(),javascript,google-chrome,map,ecmascript-harmony,Javascript,Google Chrome,Map,Ecmascript Harmony,我一直在寻找答案,但我只得到关于谷歌地图API的结果。我正在尝试使用JavaScript中的映射将整数映射到字符串。Firefox中一切正常,但在chrome中,我在控制台中收到一条错误消息: 未捕获引用错误:未定义映射 以下是一段参考代码: var NameMap; var DistanceMap; function FillMaps(){ NameMap = new Map(); DistanceMap = new Map(); NameMap.set(01, "

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

未捕获引用错误:未定义映射

以下是一段参考代码:

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;
}

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

var NameMap;
var DistanceMap;

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

    NameMap[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[parseInt(location)];
    if(result == undefined){
        result = "Unknown";
    }
    document.getElementById('loc').innerHTML = result;
}
“危险!实验技术!”

这里的代码可能可以为Chrome实现Map,但我没有尝试:


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

要启用该功能,请访问
chrome://flags/
,并启用“启用实验JavaScript”。然后重新启动浏览器,享受新功能。

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

chromium --js-flags=--harmony
chrome.exe --jsflags=--harmony

Map现在是Chrome版本38(截至2014年8月29日的测试版),这意味着它很快就会稳定下来。如果您有38个,则无需启用实验功能。

True,我可以使用数组作为示例doh!但我将来可能需要将一个字符串映射到一个字符串,有没有办法在chrome中修复它?一个对象可以用于此。数组也可以这样做,但这是一种糟糕的做法(请参阅)。地图没有出现在中,我认为它是由firefox添加的,尽管它甚至没有出现在mozilla参考中。