英文:
Js big switch statement, best way to do it
问题
第一种方法和第二种方法在性能和内存使用方面哪一种更好?
方法1
const lookup = {
case1: () => { /* case1的操作 */ },
case2: () => { /* case2的操作 */ },
// ... 其他case
};
switch (expression) {
case 'case1':
lookup.case1();
break;
case 'case2':
lookup.case2();
break;
// ... 其他case
}
方法2
function lookup(caseName) {
switch (caseName) {
case 'case1':
return () => { /* case1的操作 */ };
case 'case2':
return () => { /* case2的操作 */ };
// ... 其他case
}
}
lookup(expression);
是否有更好的方式?
英文:
Which of the two approaches is better in performance and memory usage?
Approach 1
const lookup = {
case1: () => { /* action for case 1 */ },
case2: () => { /* action for case 2 */ },
// ... other cases
};
switch (expression) {
case 'case1':
lookup.case1();
break;
case 'case2':
lookup.case2();
break;
// ... other cases
}
Approach 2
function lookup(caseName) {
switch (caseName) {
case 'case1':
return () => { /* action for case 1 */ };
case 'case2':
return () => { /* action for case 2 */ };
// ... other cases
}
}
lookup(expression);
Is there a better way?
答案1
得分: 1
你可以使用一个对象代替。
lookup_table = {
'case1': () => { console.log("case 1"); },
'case2': () => { console.log("case 2"); }
}
expression = 'case1';
lookup_table[expression]()
英文:
You can use an object instead.
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-js -->
lookup_table = {
'case1': () => { console.log("case 1"); },
'case2': () => { console.log("case 2"); }
}
expression = 'case1';
lookup_table[expression]()
<!-- end snippet -->
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论