2017-12-28 31 views
0

は、私は、これは、文字列NodeJS未定義の値

binance.prices(function(ticker) { 
    console.log("prices()", ticker); 
    console.log("Price of BNB: ", ticker.BNBBTC); 
}); 

で動作するように見えることはできません正しい値を返します、しかし、

binance.prices(function(ticker) { 
    var tickerName = "BNBBTC"; 
    console.log("prices()", ticker); 
    console.log("Price of BNB: ", ticker.tickerName); 
}); 

戻りは不定。私は尋ねたことがあり、これに関する助けを得ることができませんでした。

+0

新しい変数 'tickerName'を作成して割り当てますが、' ticker'のコンソール 'tickerName' propに書き込みます。 – efkan

答えて

0

もちろん、そのように変更することはできません。 2種類のものです

1)var tickerName = "BNBBTC";

これはあなたの変数tickerName値がそうticker.tickerNameがticker.BNBBTCに等しくなりません文字列と「BNBBTC」 に等しいことを意味する(私は以下を説明します)

それはノードので、undefinedを返す理由ですticker.tickerNameを見つけようとしています。これは、NodeがtickerName属性をティッカーから見つけようとしていることを意味します。そしてあなたが定義するtickerNameは、ティッカーの属性ではなく、変数です

2)ticker.BNBBTCは既に値を持っている変数です。 BNBBTCの部分は値でも文字列でもないことに注意してください。ティッカーの属性です。

違いを見ると、そのうちの1つが文字列であり、そのうちの1つがティッカーの属性です。あなたがそのような何かをしたい場合は

、多分あなたは使用することによって、それに近づくことができる:

binance.prices(function(ticker) { 
    var tickerName = ticker.BNBBTC; 
    console.log("prices()", ticker); 
    console.log("Price of BNB: ", tickerName); 
}); 
コーディング

ハッピー!

addtionalの: あなたがticker.tickerNameを使用したいと主張した場合、あなたはこのコードを使用することができます:

binance.prices(function(ticker) { 
    var ticker.tickerName = ticker.BNBBTC; #I change this part 
    console.log("prices()", ticker); 
    console.log("Price of BNB: ", ticker.tickerName); #I change this part 
}); 
+0

問題は、BNBBTCの前半部分を変更しようとしていることです。たとえば、ticker.ENJBTCを実行することができるようになっているか、ユーザが入力した引数を使用することができます。 BTC。 –

1

ではなくticker[tickerName]を使用して私の問題を解決!助けてくれてありがとう: