Преобразование значения строки в имя свойства объекта [дубликат]

18

Я могу это сделать:

var objPosition = {};
objPosition.title = "whatever";

Но я получаю «название» динамически и хочу использовать около полутора десятков строк, полученных таким образом, чтобы назначить полдюжины свойств объекту. Я пробовал eval и несколько других схем, которые, похоже, имеют одинаковую проблему, но до сих пор пустуют.

У меня есть:

var txtCol = $(this).text();
txtCol = $.trim(txtCol);

, и я хочу, чтобы значение txtCol было именем свойства.

Любые идеи?

    
задан Michael Broschat 28.08.2012 в 19:51
источник

4 ответа

34

Используйте ['propname'] :

objPosition[txtCol] = "whatever";

Демо: Ссылка

    
ответ дан mellamokb 28.08.2012 в 19:53
источник
  • спасибо! --Broschat –  Michael Broschat 28.08.2012 в 20:17
8

используйте обозначение скобок : objPosition['title'] = "whatever";

так:

var objPosition = {}, ttl = 'title';
objPosition[ttl] = 'whatever'; 
    
ответ дан KooiInc 28.08.2012 в 19:53
источник
3

вы также можете установить ключ объекта следующим образом

var property = "title"
objPosition[property] = "something";
    
ответ дан Shreedhar 28.08.2012 в 19:53
источник
2

Используйте обозначения в виде скобок:

objPosition["title"] = "Whatever";
    
ответ дан Some Guy 28.08.2012 в 19:54
источник