2017-11-11 6 views
-5

/* * 다음 중 하나에 범주를 설정하는 삼항 연산자의 시리즈를 사용 * - "육식은"동물이 동물을 먹는 경우 - "초식 동물"은 동물 *이 식물을 먹는 경우 는 * - "잡식 동물"동물은 식물과 동물을 먹는 경우는 * - if 문 - 당신의 삼항 *의 변수 eatsPlantseatsAnimals를 사용 - 동물은 식물이나 동물 * 을 먹지 않는 경우에 정의되지 않은 * *주의 사항 허용되지 않습니다 .-) */삼항 연산자는

은이 코드를 사용하지만이 작동

+0

안녕하세요. StackOverflow는 토론 포럼이나 코드 작성 서비스가 아닙니다. [이 기사] [1]을 보면서 가치있는 질문을하는 것이 도움이 될 수 있습니다. [1] : https://stackoverflow.com/help/how-to-ask – pmcilreavy

+0

'동물이 식물이나 동물을 먹지 않으면 정의되지 않음 '...하지만 동물이 식물을 먹지 않으면 정의되지 않은 결과가 출력됩니다. 그리고 동물들 - 부울 로직에 대해서도 브러쉬를해야합니다. –

+0

도 먹지 말고'undefined'가되어야합니다.''undefined '' –

답변

0

이 문제를 해결하기 위해

var eatsPlants = true; 
var eatsAnimals = false; 


var category = eatsPlants ? "herbivore" : "carnivore"; 
console.log(category); 
var category = (eatsPlants && eatsAnimals) ? "omnivore" : "undefined"; 
console.log(category); 

어떤 아이디어가 옳은 일을 못하고있다 -

const category = (eatPlants && eatAnimals) ? 'omnivore' : eatAnimals ? 'carnivore' : eatPlants ? 'herbivore' : undefined;

당신은 체인 하나 원의 다른 필요를 삼항 연산자를 사용하여 if-else 분기를 그릴 경우 다른 부분을 다른 부분으로 나누십시오.

그러나 나는 다른 브랜치가 인 경우 코드의 가독성을 유지하기 위해 사용하는 것이 좋습니다. Ternaries는 여러 가지 조건으로 조금 엉망이됩니다.

이것은 if-else 로직에서 분명했을 것입니다.

let category = undefined; 
if (eatPlants && eatAnimals) 
    category = 'omnivore'; 
else if (eatPlants) 
    category = 'herbivore'; 
else if (eatAnimals) 
    category = 'carnivore'; 
1

이렇게하면 문제가 해결됩니다.

var eatsPlants = false; 
var eatsAnimals = true; 

var category = (eatsPlants) ? (eatsAnimals) ? "omnivore" : "herbivore" 
: eatsAnimals ? "carnivore" : undefined; 

console.log(category); 
관련 문제