使用2个字符串变量作为Map
的键的最佳方法是什么?
const map = new Map();
map.set(['a', 'b'], 5);
map.get(['a', 'b']); //undefined
创建对[v1, v2]
的引用并将其用作密钥不适用于我的情况。
将两个变量与分隔符组合在一起的唯一选择是什么? (如果字符串变量可能包含分隔符,则会很混乱。)
答案 0 :(得分:1)
可以嵌套地图:
var map=new Map();
function set(key1,key2,value){
if(map.has(key1)){
return map.get(key1).set(key2,value);
}
return map.set(key1,new Map([[key2,value]]));
}
function get(key1,key2){
if(map.has(key1)){
return map.get(key1).get(key2);
}
return false;
}
set("a","b","value");
console.log(get("a","b"))
如果你想要一个可变长度的键,你可以递归地创建地图并在末尾添加一个退出定界符,可能是一个符号:
var exit=Symbol("exit");
set("a",exit,"value");
set("a","b",exit,"value");