2017-11-24 1 views
-1

他の人がswitch文に次のように置いてくれたら助けてくれますか?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 
     ); 
    } 
} 

私はそれをスイッチのステートメントに入れる必要があります。私はそれを行う方法を理解できないので、本当に本当に感謝していますか?

+0

はあなたが私には、この内部のswitch文またはそのことはできませんを置くことができますか? – 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'から始まる他の問題を解決しましたが、最初のif else文を解決しました。最初のもので私を助けてくれたら本当に感謝します。 – Mubi

関連する問題