JavaScript의 if 문에 여러 조건을 지정하는 방법


87

여기에 두 가지 조건을 언급하는 방법이 있습니다.

if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

답변:


154

if 문의 주 괄호 안에 추가하면됩니다.

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
            PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

논리적으로 이것은 더 나은 방법으로 다시 작성할 수 있습니다! 이것은 정확히 같은 의미를 가지고 있습니다.

if (Type == 2 && (PageCount == 0 || PageCount == '')) {

1
동의합니다. 또한 조건부 여는 중괄호가 없습니다. 그것은 도움이되지 못했습니다.
Tass 2015 년

26

여기에 다른 방법이 있습니다.

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

if (conditionsArray.indexOf(false) === -1) {
    "do somthing"
}

또는 ES6

if (!conditionsArray.includes(false)) {
   "do somthing"
}

19

현재 4 가지 조건을 넘어서는 if 문 방법을 사용하면 다루기 어려워지는 많은 조건을 확인하고 있습니다. 미래의 시청자를 위해 깔끔하게 보이는 대안을 공유하기 위해 ...

var a = 0;
var b = 0;

a += ("condition 1")? 1 : 0; b += 1;
a += ("condition 2")? 1 : 0; b += 1;
a += ("condition 3")? 1 : 0; b += 1;
a += ("condition 4")? 1 : 0; b += 1;
a += ("condition 5")? 1 : 0; b += 1;
a += ("condition 6")? 1 : 0; b += 1;
// etc etc

if(a == b) {
    //do stuff
}

1
나는 이것이 현명하지 못한 관행이라는 의견을 보지 못하므로 사용하는 것이 절약된다고 생각합니다. 감사!
CousinCocaine

2
이것은 모든 조건이 참으로 평가되어야하는 경우에만 작동한다는 점을 언급하고 언급 할 가치가 있습니다. 즉, 이것은 쓰기의 또 다른 방법 AND이지만 OR.
Mark Kramer 19

6

전체 if는 대괄호로 묶어야하고 or연산자는 ||not입니다 !!.

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...

6

때로는 통계를 추가로 결합하는 트릭을 찾을 수 있습니다.

예를 들면 다음과 같습니다.

0 + 0 = 0

"" + 0 = 0

그래서

PageCount == 0
PageCount == ''

다음과 같이 작성할 수 있습니다.

PageCount+0 == 0

자바 스크립트 0로 단지 좋은 같습니다 false반전 !이 될지는 0true

!PageCount+0

총계 :

if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;

이것은 코드를 가능한 한 짧게 만들고 싶지만 많은 좋은 관행에 위배되는 경우입니다. 코드를 읽기 쉽게 유지하십시오. 이 대답은 비밀스럽고 다음 사람이 코드를보고 실수를하도록 유도합니다.
belvederef

4
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {

        PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

이것은 가능한 해결책 중 하나 일 수 있으므로 '또는'은 || 아니 !!


3

여분의 괄호로 포장하면 갈 수 있습니다.

if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

-1
function go(type, pageCount) {
    if ((type == 2 && pageCount == 0) || (type == 2 && pageCount == '')) {
        pageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
    }
}

코드를 들여 쓰기하고, 자신이 충분하지 않은 경우 질문에 대답하지 마십시오.
하싯
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.