Javascript 如何在switch语句中放入计算函数?
有谁能帮我把下面的if-else放到switch语句中吗Javascript 如何在switch语句中放入计算函数?,javascript,if-statement,switch-statement,Javascript,If Statement,Switch Statement,有谁能帮我把下面的if-else放到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 =
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语句中,我真的很感激,因为我不知道怎么做?完全没有条件分支:
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;
}
你能帮我把这句话放进switch语句里吗?这没什么大不了的,只是试着理解一些我已经坚持了很长一段时间的概念,是否可能?但它说selectorArray.length未定义?这解决了从
getByTags
开始的第二个if-else问题,但解决了第一个if-else语句,如果您能帮我解决第一个问题,我将非常感谢?