내 node.js 응용 프로그램은 API의 수많은 json 값을 사용합니다. 예를 들면 :
stats.player.rank
stats.player.game.coins
내가 알고 싶은 것은 존재하지 않는 json 경로를 호출 할 때 기본값 0으로 설정하는 방법입니다. 내가 할 var coins = player.game.coins + player.game2.coins;
때 플레이어가 game2에 동전이 없으면 API에 개체가 없기 때문에 TypeError : Cannot read property 'coins'of undefined가 표시됩니다.
당신은 논리 연산자를 사용 &&
하고 ||
이 작업을 수행 할 수 있습니다.
var coins = player.game.coins +
((player.game2 && player.game2.coins) || 0);
player
정의되지 않은 경우 확인하기 전에 존재하는지 확인해야합니다 game2
. 그래서 그것은((player && player.game2 && player.game2.coins) || 0)
코드가 어떻게 평가되는지 알게되면 이치에 맞습니다. &&
AND 연산이므로 각 값이 왼쪽에서 오른쪽으로 존재하는지 확인합니다. player
존재하고 player.game2
존재하고 player.game2.coins
있는 때문에, 비교를 중지하고 값이 이용된다. 둘 중 하나가 실패하면 괄호를 벗어나 0
기본값 을 반환하는 OR을 수행합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다