2014-05-13 4 views
-3

다음을 기반으로 삼항 연산자를 쓰고 싶습니다.세 가지 가능한 결과에 대한 사용자 삼항 연산자

var statusJSON = { 
    '- Select -': '', 
    'Active': true, 
    'Inactive': false 
}; 

은 현재 내가

statusFlag: $('#statusFlag').val() == 'true' ? true : false 

truefalse 값에 대해 잘 작동하지만 3 조건을 처리하지 않습니다 (즉 빈 "")

가 어떻게 같은 처리하나요 있나요? 둥지 ternary 운영자에게

+2

를 사용할 수 있습니다 운영자. 만약 $ ('# statusFlag') .val()'이 속성 이름 중 하나를 반환한다면'statusJSON [$ ('statusflag') .val()]'을 사용하면된다. 그게 네가 실제로 원하는거야? –

+1

네 번째 연산자가 필요합니다. – Bergi

+0

이것은 lookup/find 메쏘드에 대한 것 같습니다 – CodingIntrigue

답변

1

시도,

statusFlag: $('#statusFlag').val() == 'true' ? 
      true : $('#statusFlag').val() == 'false' ? false : "empty"; 
5
statusFlag: $('#statusFlag').val() == 'true' ? true : 
      $('#statusFlag').val() == '' ? 'empty' : false 

당신은 그냥이 같은 여러 조건을 추가 할 수 있습니다

a ? b : (c ? d : e) 

()은 필요하지 않습니다,하지만 내 생각에 그들은 개선 줄 바꿈없이 쓰기 가독성.

이 의미 :

if(a){ 
    b 
}else{ 
    if(c){ 
     d 
    }else{ 
     e 
    } 
} 

그래서, 기본적으로, 당신은 이전의 else 절에 또 다른 삼항 연산자를 중첩하고 있습니다. 이와 함께 원하는만큼 멀리 갈 수

a ? b : // if(a) then `b` 
c ? d : // else, if(c) then `d` 
e ? f : // else, if(e) then `f` 
g ? h : // else, if(g) then `h` 
i ? j : k // else, if(i) then `j`, else `k` 
+1

감사합니다. 이 – Pixelomo

1

을 당신은 삼항 표현에 2 개 조건문을 사용하려면, 뭔가 같은 :

value = (condition1) ? a : (condition2) ? c : d; 

귀하의 경우 :

statusFlag: $('#statusFlag').val() == 'true' ? true : 
     $('#statusFlag').val() == '' ? 'empty' : false 
1

statusJSON을 조회 표로 사용할 수 있습니다.

var val = $('#statusFlag').val(); 
… statusFlag: val in statusJSON ? statusJSON[val] : false /*or whatever*/ 
당신은 단지 세 개의 값이 발생할 않는 것이 확실하거나 그렇지 않으면 undefined 결과와 함께 잘 경우

, 당신은뿐만 아니라 그냥 개체가 조건에 관련이 있는지에 대해 조금 혼란 스러워요

… statusFlag: statusJSON[$('#statusFlag').val()]