将数组转换为 switch 语句

发布于 2024-11-24 21:17:00 字数 196 浏览 2 评论 0原文

将数组转换为 switch 语句最快的解决方案是什么?

var myArr = [x,y]

  case x:
    console.log("ok > x")
    break;
  case y:
    console.log("ok > y")
    break;

What's the fastest solution to convert a array into a switch statement?

var myArr = [x,y]

  case x:
    console.log("ok > x")
    break;
  case y:
    console.log("ok > y")
    break;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丿*梦醉红颜 2024-12-01 21:17:00

像这样

arr.map(function(I) { console.log('ok >' + I); });

如果我对你的问题的猜测正确的话。

like this

arr.map(function(I) { console.log('ok >' + I); });

If I'm guessing correctly concerning your question.

小女人ら 2024-12-01 21:17:00

将数组转换为 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');
 }
}
*/

请注意,上述内容毫无意义,超出了丑陋和危险的范围。使用后果自负。

What's the fastest solution to convert a array into a switch statement?

...just for fun, I'm taking your request literally:

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');
 }
}
*/

Note that the above is rather pointless, beyond ugly and dangerous at that. Use at your own peril.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文