2017-12-28 29 views
0

NodeJS 정의되지 않은 값

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

반환 정의되지 않은이하지만, 문자열

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

올바른 값을 반환 작업을 얻을 수 있습니다. 나는 주변에 물어 봤고 이것에 어떤 도움도 얻을 수 없었다.

+0

당신은 새로운 변수'tickerName'을 만들고 할당하지만'ticker'의 콘솔'tickerName' prop에 쓰십시오. – efkan

답변

0

물론 변경할 수는 없습니다. 그들은 서로 다른 두 가지입니다

1) var tickerName = "BNBBTC";

이 당신의 변수 tickerName 값 (I 아래에 설명 할 것)

것은이 노드 때문에 정의되지 않은 반환되는 이유 그렇게 ticker.tickerName가 ticker.BNBBTC 동일하지 않습니다 "BNBBTC"에 문자열과 동일한 의미 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); 
}); 
코딩

해피!

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 또는 사용자가 입력 한 모든 인수를 할 수 있기를 기대합니다. 항상 마지막 3자가됩니다. BTC. –

1

해결하는 대신 ticker[tickerName]를 사용하여 내 문제! 도움을 주셔서 감사합니다 :