在javascript中从另一个变量名创建变量键

时间:2014-11-21 15:09:34

标签: javascript

t等于mapType

var t = 'mapType'

我想获得以下结果

mapTypeControlOptions: {
};

但是当我尝试t[ControlOptions]: {}时,它会出现使用方括号的错误,有没有办法让它工作?

我的最终结果是

map.setOptions({
    mapTypeControlOptions: {
        position: google.maps.ControlPosition.TOP_LEFT
    }
});

但我想动态构建它,以便mapTypeTOP_LEFT根据变量而改变

3 个答案:

答案 0 :(得分:1)

var myObject = {};
var t = 'mapType';

myObject[ t + 'ControlOptions' ] = {};
// after your edit: no you can call 
// map.setOptions( myObject );

console.log( myObject );
// Object {mapTypeControlOptions: Object} 

console.log( myObject[ 'mapTypeControlOptions' ] );
// Object {}

console.log( myObject[ t +'ControlOptions' ] );
// Object {}

答案 1 :(得分:1)

如果要构建这样的键名,传递给map.setOptions()的对象将需要单独创建。

E.g。我在下面创建了一个空对象“设置”,根据您选择的't'变量(mapType)修改它,然后通过map.setOptions()将其传递到Google地图:

var t = 'mapType';
var settings = {};

// Add to settings object using key prefix 't'
settings[t + 'ControlOptions'] = {
    position: google.maps.ControlPosition.TOP_LEFT
};

// Pass into map
map.setOptions(settings);

答案 2 :(得分:-1)

var mapType = {};
mapType.ControlOptions: {
};