2013-10-28 3 views
1

ifelseswitch에 다시 쓰려면 어떻게해야합니까?스위치를 쓰려면 ifelse를 다시 쓰십시오.

var d = document, 
    a = 'foo', 
    b = 'bar', 
    c = 'foobar'; 

if (d.URL.indexOf(a) != -1 || d.URL.indexOf(b) != -1) 
{ 

    // do this 

} 
elseif(d.URL.indexOf(c) != -1) 
{ 

    // do something else 

} 

는 약 10 개 ifelse 내가 switch

내가 답을 검색 한로 변경하는 것을 선호 발견 줄 이유입니다 아무것도 그래서 시도하지이를 위해 계속 :

function io(i) 
{ 
    d.URL.indexOf(i) != -1; 
} 

switch (io()) 
{ 
case a: 
case b: 
    // do this 
    break; 
case c: 
    // do this 
    break; 
} 

과 같은 몇 가지 유사하지만 나는 JS 초보자이고 그래서 내가 틀렸다는 것을 알았다.

+0

a) switch 문 구문에 대해 [Google] (http://www.google.com/search?q=javascript+switch+statement)을 사용해 보셨습니까? b) 코드 예제의 형식을 지정하십시오! – Nils

+0

예, 물론 (추가 :) 아빠. –

+1

모든 닌자 편집을 죄송합니다.하지만 지금 내 답변이 필요합니다. – Evan

답변

1

여기서 가장 좋은 방법은 실제로 해당 기능을 사용하여 객체 배열을 작성한 다음 every을 사용하여 해당 배열을 순환시키는 것입니다. 당신은 여러 번 사용할 수 알고 기능이있는 경우, 당신은 단지 배열의 외부를 만들고 여러 개체의 fn 키에 할당

var choices = [ 
    { 
    value: foo, 
    fn: function() { // do this } 
    }, 
    { 
    value: 'foobar', 
    fn: function() { // do something else } 
    } 
]; 
choices.every(function(choice) { 
    if (document.URL.indexOf(choice.value) !== -1) { 
    choice.fn(); 
    return false; 
    } else return true; 
}); 

: 다음은 위의 예를 사용하여 몇 가지 데모 코드입니다. 그것을 만날 때 return true을 사용하면, 어레이를 계속 움직일 것입니다. 그러면 그것이 실제로있는 곳을 공격 할 때 return false이되고 모든 기능이 끝납니다.

관련 문제