什麼是將數組轉換爲switch語句的最快解決方案?將數組轉換爲switch語句
var myArr = [x,y]
case x:
console.log("ok > x")
break;
case y:
console.log("ok > y")
break;
什麼是將數組轉換爲switch語句的最快解決方案?將數組轉換爲switch語句
var myArr = [x,y]
case x:
console.log("ok > x")
break;
case y:
console.log("ok > y")
break;
什麼是將數組轉換爲switch語句的最快解決方案?
...只是爲了好玩,我要帶你的要求的字面:
function arrToSwitch(a, x) {
var code = [];
code.push("var f = function (x) {");
code.push(" switch (x) {");
for (var i=0, j=a.length; i<j; i++) {
code.push(" case " + a[i] + ": console.log('ok > " + a[i] + "'); break;");
}
code.push(" default: console.log('not found');");
code.push(" }\n}");
eval(code.join("\n"));
return f;
}
var myArr = [1, 2, 3];
var test = arrToSwitch(myArr);
test(3) // logs "ok > 3" to the console
test(4) // logs "not found" to the console
console.log(test);
/* returns
function (x) {
switch (x) {
case 1: console.log('ok > 1'); break;
case 2: console.log('ok > 2'); break;
case 3: console.log('ok > 3'); break;
default: console.log('not found');
}
}
*/
注意,上面是相當沒有意義,超出了醜陋的和危險的那個。用於自己的危險。
哈哈確定了它:) – mate64
你能解釋一下你想達到什麼嗎?數組是數據結構,開關是流控制指令 - 完全不同的東西。 – Mat