2017-11-24 4 views
-1

Kann mir bitte jemand helfen, das folgende wenn sonst in switch statement zu setzen ??Wie berechnete Funktionen in switch statement?

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 
     ); 
    } 
} 

Ich muss es nur in Schalteranweisung setzen Ich werde wirklich wirklich dankbar sein, weil ich nicht herausfinden kann, wie man es macht?

+0

können Sie mir helfen setzen diese innerhalb switch-Anweisung oder es ist nicht möglich? – Mubi

+0

es ist nichts, Hauptsache, ich versuche nur wenige Konzepte zu verstehen, wo ich schon lange feststecke, ist es möglich oder nicht? – Mubi

Antwort

-1

Keine bedingte Verzweigungen überhaupt:

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

oder wenn Sie wollen wirklich einen Schalter:

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

Aber es sagt SelectorArray.length ist nicht definiert? – Mubi

+0

@mubi gut das ist von Ihrem Code. –

+0

Dies hat das zweite if else Problem gelöst, das von 'getByTags' ausgeht, aber die erste if else Anweisung gelöst hat, ich werde wirklich dankbar sein, wenn Sie mir mit der ersten helfen können? – Mubi

Verwandte Themen