Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передать переменную в конструктор объекта {} (https://javascript.ru/forum/misc/24287-peredat-peremennuyu-v-konstruktor-obekta-%7B%7D.html)

hominini 24.12.2011 18:53

Передать переменную в конструктор объекта {}
 
Доброго времени суток. Подскажите, пожалуйста.
Есть кусок кода:

function f(){
    var key = 'YO'; 
    ...
    return {key: 'NIGGA'};
}


Возвращается объект с полем 'key'.
Как сделать, чтобы 'key' интерпретировалась как переменная и возвращался объект с полем 'YO'

рони 24.12.2011 19:16

hominini,
Вариант...
function f(){
    var key = 'YO';
    var obg = {} ;
    obg[key]='NIGGA' ;
    return obg;
}

hominini 24.12.2011 20:24

Так я могу. Но это две лишних строки и объявление ненужной переменной.
Пробовал
return {eval(key): "NIGGA"};

выдает ошибку

Может еще какой способ есть?

Nekromancer 24.12.2011 20:53

hominini,
Нормальных нету. А тот, что вам показали первым, самый правильный.

Gvozd 24.12.2011 22:35

Цитата:

Сообщение от hominini
Но это две лишних строки и объявление ненужной переменной.

Байты экономим?

trikadin 24.12.2011 23:02

Цитата:

Сообщение от Gvozd
Байты экономим?

Все прям помешались на этом в последнее время. Один тут, забаненный, тоже этим интересовался...

DreamTheater 25.12.2011 00:38

function f() {
    var key = 'yo';

    return {
        key: key
    };
}

DreamTheater 25.12.2011 00:39

Я может чего-то не понял, а в чем проблема?

B@rmaley.e><e 25.12.2011 01:37

В одну строчку? Да пожалуйста
alert(function(key,value){return (eval("var _={};_")[key]=value,_)}('lalala', 'ololo').lalala);

trikadin 25.12.2011 02:43

DreamTheater, надо, чтобы значение переменной key стало названием свойства объекта.


Часовой пояс GMT +3, время: 12:09.