2015-05-16 4 views
-2

Мне нужна динамическая переменная в nodejs.Как использовать имя динамической переменной в nodejs

Я использую allocine-api, и она возвращает другой объект, когда я его использую. Например:

 allocine.api(type, {code: code}, function(error, result) { 
     if(error){ 
      console.log('Error : '+ error); 
      return; 
     } 
     socket.emit("allocine_"+type ,result); 
    }); 

, если тип является «фильмом», результат содержит объект фильма, но если типа является «tvseries», результат содержит объект tvseries. Поэтому мне нужно взять переменную «originalTitle» в «tvseries» или «кино» объект, так что мне нужно сделать это:

result.<type>.originalTitle 

Но, как использовать содержат от «типа» для этого? Я попытался использовать метод javascript и использовать «window ['type']», но это не работает в nodeJs.

+0

Что такое результат? Где это определено? –

+0

Я сделал одно обновление – thib3113

+0

Еще трудно понять. В узле нет окна для оконного объекта. Что вы пытаетесь достичь? –

ответ

1

, как Java-объекты элементы могут быть доступны в виде ассоциативного массива (ср) mozilla js doc

использованием myobject.myproperties строго равна использовать MyObject [ "myproperties"] поэтому, если var хранит имя свойства для чтения var myvar = "myproperties"; вы также можете использовать MyObject [MyVar]

так, конкретно:

var o = { 
    tvseries : { 
     originalTitle : "hello world" 
    } 
}, type = "tvseries"; 

console.log(o[type].originalTitle); 

jsfiddle

также, если объект результата получить только один вспомогательный объект, названный по типу, вы можете получить имя типа непосредственно из него

var type = Object.keys(myobject)[0]; 

jsfiddle

или более просто:

var theTitle = myobject[ Object.keys(myobject)[0] ].originalTitle; 

jsfiddle

0
var results = {}; 

results.a = {originalTitle: "One"}; 
var results2 = {b:{originalTitle: "Two"}}; 

console.log(results['a'].originalTitle); //now one 
console.log(results2['b'].originalTitle); //now Two 

С двумя способами создания объекта.

Попробуйте скрипку:

http://jsfiddle.net/rmoskal/6rf0juq6/

+0

yes, но мне нужно взять одну переменную в одном объекте, у меня есть один объект (unamed), и он содержит один объект tvseries или один объектный фильм, как сделать общность? – thib3113