刚开始涉足Javascript,所以如果这是一个基本问题,我很抱歉。我有一系列键:
keys = ['fruits','vegetables','fats','meats']
我想为数组中的每个元素动态创建一个Map(此数组的长度可能会发生变化)。 我正在尝试做这样的事情:
for (var i=0; i<keys.length; i++) {
map_name = keys[i];
var map_name = new Map();
map_name.set('foo','bar');
}
console.log(fruits)
输出:未定义水果
我尝试过搜索某种语法,以便能够动态创建此语法,同时还能够访问全局创建的地图,但我似乎无法找到解决方案。
谢谢!
答案 0 :(得分:0)
尝试动态创建变量名称是个坏主意。改为使用地图:
var keys = ['fruits','vegetables','fats','meats'];
var things = new Map();
for (var i=0; i<keys.length; i++) {
var map_name = keys[i];
var map_value = new Map();
map_value.set('foo', 'bar');
things.set(map_name, map_value);
}
console.log(things.get('fruits').get('foo'));
答案 1 :(得分:-1)
试试这个
keys = ['fruits','vegetables','fats','meats']
for (var i=0; i<keys.length; i++) {
map_name = keys[i];
window[map_name] = new Map();
window[map_name].set('foo','bar');
}
console.log(fruits)
通过将您的键设置为窗口对象的属性,您可以直接使用变量名称来访问它,例如&#39; fruits&#39;。
但实际上不建议向窗口对象添加属性。你应该使用你自己的对象。