2017-11-24 7 views
-1

다른 사람이 스위치 진술에 다음을 추가하는 것을 도와 줄 수 있습니까 ??switch 문 안에 계산 된 함수를 두는 방법은 무엇입니까?

var computed ={ 
idOnly : function() {}, 
classOnly : function() {}, 
selectAllElements: function() {}, 
eitherOne : function() {} 
} 

// From here i need to put in Switch 
if (computed.idOnly(selector)) { 
    var getById = document.getElementById(selectorArray[1]); 
    Allelements.push(getById); 
} else if (computed.classOnly(selector)) { 
    var getByClass = document.getElementsByClassName(selectorArray[1]); 

    computed.selectAllElements(getByClass, Allelements); 
} else { 
    var getByTags = document.getElementsByTagName(selectorArray[0]); 

    if (selectorArray.length === 1) { 
     computed.selectAllElements(getByTags, Allelements); 
    } else if (selectorArray.length === 2) { 
     computed.eitherOne(
      byId, 
      byClass, 
      byTag, 
      false, 
      Allelements 
     ); 
    } else if (selectorArray.length === 3) { 
     computed.eitherOne(
      byId, 
      byClass, 
      byTag, 
      true, 
      Allelements 
     ); 
    } 
} 

Switch 문 안에 넣어야합니다. 어떻게해야 할지를 알 수 없으므로 정말 감사 할 것입니다.

+0

당신이 날이 내부 스위치 문 또는 그 불가능을 넣어 도움이 될 수 있습니까? – Mubi

+0

그것의 아무 것도, 다만 나가 언젠가를 위에 위에 위에 붙드는 몇몇 개념을 이해하는 것을 시도하는 것은 가능하거나 아니다? – Mubi

답변

-1

없음 조건 분기의 모든 :

computed.eitherOne(
    ...(selectorArray.length === 1 ? [getByTags] : [byId, byClass, byTag, selectorArray.length === 3]), 
    Allelements 
); 

또는 당신이 정말로 스위치하려는 경우 :

switch(selectorArray.length){ 
case 1: 
    computed.eitherOne(getByTags, Allelements); 
break; 
case 2: 
    computed.eitherOne(byId, byClass, byTag, false); 
break; 
case 3: 
    computed.eitherOne(byId, byClass, byTag, true); 
break; 
} 
+0

하지만 selectorArray.length가 정의되지 않았습니까? – Mubi

+0

@mubi 잘 코드에서. –

+0

이것은'getByTags'에서 시작하는 두 번째 문제를 해결했지만 첫 번째 else 문을 해결했습니다. 첫 번째 도움말을 통해 나를 도와 줄 수 있다면 정말 감사 할 것입니다. – Mubi