javascript - 在 javascript 中使用 switch 语句性能运行函数
问题描述
我有一个代码可以用随机数生成数学问题。我正在使用 switch 语句来选择应该生成哪个任务。
function genTask(taskid) {
switch (taskid) {
case 1:
// generate some numbers
return numbers;
break;
case 2:
// generate some numbers
return numbers;
break;
// ...
}
}
我认为当我添加 150 多个案例时可能会出现一些性能问题。此代码是否适用于每种情况?如果每个任务都有单独的功能,会不会更快?
function task1() {
// generate some numbers
return numbers;
}
function task2() {
// ...
}
function genTask(taskid) {
switch (taskid) {
case 1:
return task1();
break;
case 2:
return task2();
break;
// ...
}
}
有没有更快的方法来做到这一点?
解决方案
总的来说,我认为“array”的性能优于“if/else”或“switch”。请参阅下面的参考。在您的特定情况下,如果您将 if/else 与 switch 进行比较,那么 switch 会更好。
使用函数不会影响性能(我认为),但它更好,更可取,因为代码会更干净和可读。
参考:https ://www.oreilly.com/library/view/high-performance-javascript/9781449382308/ch04.html
推荐阅读
- swift - 在同一个多平台(iOS、macOS、watchOS、tvOS)应用程序中支持不同的生命周期方法
- javascript - 上下文菜单'无法读取菜单的属性'Angular 7
- azure - AzureDataFactory:使用 HTTP 连接器从 URL 下载 Excel 文件给出 Excel 格式“不支持”问题
- c# - 从 .NET Core 3.1 WinForms 中的资源文件中检索字符串值(需要简单示例)
- javascript - 异步函数返回未定义的类型
- karate - 使用 match each contains 进行 json 数组项断言
- c# - 上传前 C# 过滤文件扩展名
- python - Tensorboard 只显示点,线不显示
- activemq - 我可以在没有许可证/支持订阅的情况下在生产中使用 Red Hat AMQ 7.7
- python-3.x - 在 sublime ubuntu 中编辑文件