【发布时间】:2014-02-20 18:32:22
【问题描述】:
这是一个与javascript switch vs loop on array 略有相似的问题,但有所不同。比较
function Function1 (n) {
switch (n) {
case 0:
return "apple";
break;
case 1:
return "pear";
break;
// and a few more, or many more
}
}
和
var Array2 = ["apple", "pear"]; // and more
然后根据需要调用或引用。第二个更整洁,但它有什么重要的缺点,不仅在速度方面,而且在内存使用方面?如果数组中有更多案例/元素,答案会发生很大变化吗?您的答案是特定于 Javascript 还是编程的一般原则?谢谢。
【问题讨论】:
-
数组查找与 Object 查找相同,后者(在大多数实现中)使用哈希表完成,因此它非常快具有大型结构。这与
switch不同,后者实际上与一系列ifs 相同 -
如果您需要访问索引上的数据,请使用结构访问索引上的数据。为什么要跳过多个条件或让编译器优化查找并混淆代码?
-
谢谢。没有理由,只是不知道它是否有任何隐藏的优势。 :)
标签: javascript arrays switch-statement