Javascript Google Chrome中未定义Map()
我一直在寻找答案,但我只得到关于谷歌地图API的结果。我正在尝试使用JavaScript中的映射将整数映射到字符串。Firefox中一切正常,但在chrome中,我在控制台中收到一条错误消息: 未捕获引用错误:未定义映射 以下是一段参考代码: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, "
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参考中。