我在js上使用这个'map':
var myMap = new Object();
myMap[key1]=value1; //like this n times...
但我想将密钥用作两个字符串的组合,意思是:
function getMapValue(str1,str2){...}
我不介意将两个字符串连接成一个长字符串并使用带有长字符串的函数
任何想法?
答案 0 :(得分:2)
您可以制作地图地图(只需确保在访问时检查中间地图是否存在)
var myMap = {}; //dont use "new Object()". It is evil.
function insert(k1, k2, v){
if(!(k1 in myMap)){ myMap[k1] = {}; }
myMap[k1][k2] = v;
}
function get(k1, k2){
return myMap[k1] && myMap[k1][k2];
}
如果你想将两个子串连接成一个子串,你可以使用加号运算符来连接。
var customKey = k1 + '|' + k2;
请确保您的分隔符不能用于普通密钥以避免冲突。
答案 1 :(得分:-1)
如果我说得对,以下内容应该有所帮助:
var myMap = {"key1" : "something1", "key2" : "something2"};
获取密钥的值,您可以使用:return myMap.key1;
或者:return myMap.["key1"];
如果您有/做过:myMap["key1key2"] = "MagicHappens!";
您可以使用myMap.key1key2
获取值或myMap["key1key2"]
,甚至:return myMap["key1"+"key2"];
或者:
var x = "key1";
var y = "key2";
return myMap[x+y];