2014-11-21 4 views
-3

У меня есть t, который приравнивает mapTypeСоздание переменного ключа от другого имени переменного в JavaScript

var t = 'mapType'

Я пытаюсь получить следующий результат

mapTypeControlOptions: { 
}; 

Но когда я пытаюсь t[ControlOptions]: {} речь идет с ошибкой для использования квадратных скобок, есть ли способ заставить это работать?

Мой конечный результат

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

Но я хочу, чтобы динамически построить его так, чтобы mapType и TOP_LEFT изменяются в зависимости от переменных

ответ

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
var mapType = {}; 
mapType.ControlOptions: { 
}; 
1

Если вы хотите построить ключевые имена, как что объект, переданный в map.setOptions(), потребуется создать отдельно.

E.g. Я создал его как пустой параметр «Настройки» ниже, изменив его на основе выбранной вами переменной «t» (mapType), а затем передал его на карту Google через map.setOptions():

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); 
Смежные вопросы