String NodeJS未定义值

String NodeJS未定义值,string,api,undefined,String,Api,Undefined,我好像不能用绳子来做这个 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)

我好像不能用绳子来做这个

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);
});

返回未定义的。我四处打听过,在这方面没有得到任何帮助。

当然你不能这样改变它。 它们是两种不同的东西

1) var tickerName=“BNBBTC”

这意味着您的变量tickerName值是一个字符串,等于“BNBBTC” 因此,ticker.tickerName将不等于ticker.bnbtc(我将在下面解释)

这就是为什么它返回undefined,因为节点尝试查找ticker.tickerName,这意味着节点尝试从ticker中查找tickerName属性。您定义的tickerName是一个变量,而不是ticker的属性

2) ticker.BNBBTC是一个已经有值的变量。记住,BNBBTC的部分不是值,也不是字符串。但这是ticker的一个属性

看看区别,其中一个是string,另一个是ticker的属性

如果你想做类似的事情,也许你可以使用:

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

附加: 如果您坚持要使用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
});

ticker[tickerName]
解决了我的问题!感谢您的帮助:)

您创建并分配了一个新变量
tickerName
,但您向控制台
tickerName
写入
ticker
的道具。问题是,我试图更改BNBBTC的前半部分,例如,我希望能够执行ticker.ENJBTC或用户输入的任何参数,虽然最后3个字符始终为BTC。