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

возвращает неопределенное. Я спрашивал вокруг и не смог получить никакой помощи по этому вопросу.

2 ответа

Решил мою проблему с помощью ticker[tickerName] вместо! Спасибо за помощь:)

Конечно, вы не можете изменить это так. Они 2 разные вещи

1) var tickerName = "BNBBTC";

это означает, что значение вашей переменной tickerName является строкой и равно "BNBBTC", поэтому ticker.tickerName не будет равно ticker.BNBBTC (я объясню ниже)

Вот почему он возвращает undefined, потому что Node пытается найти ticker.tickerName, что означает, что Node пытается найти атрибут tickerName из ticker. И ваш tickerName, который вы определяете, является переменной, а не атрибутом тикера

2) ticker.BNBBTC - это переменная, которая уже имеет значение. Помните, что часть BNBBTC не является ни значением, ни строкой. но это признак тикера.

Посмотрите на разницу, один из них является строкой, один из них является атрибутом для тикера.

если вы хотите сделать что-то подобное, возможно, вы можете подойти к этому с помощью:

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
});
Другие вопросы по тегам