问题
I've been searching for an answer but I'm only getting results regarding the Google maps API. I'm trying to use a map in JavaScript to map an integer to a string. Everything is working fine in Firefox but in chrome I get an error message in the console:
Uncaught ReferenceError: Map is not defined
Below is a piece of reference code:
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;
}
回答1:
Some ES harmony features, including Map()
, did already exist in Chrome at the end of 2011. It's just disabled by default.
To enable the feature, visit chrome://flags/
, and enable "Enable experimental JavaScript". Then restart the browser and enjoy the new features.
An alternative method is to pass the --js-flags=--harmony
flag on the command line. For instance:
chromium --js-flags=--harmony
chrome.exe --jsflags=--harmony
回答2:
Map is now in Chrome version 38 (beta as of 29-Aug-2014), which means it will get to stable very shortly. If you have 38, no need to enable experimental features.
回答3:
Why not use a simple array?
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;
}
回答4:
"Danger! Experimental technology!"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
Its possible the code here can implement Map for Chrome, but I've not tried:
http://wiki.ecmascript.org/doku.php?id=harmony:simple_maps_and_sets
来源:https://stackoverflow.com/questions/17251315/map-is-not-defined-in-google-chrome