编写一段代码功能样式的最佳方式

时间:2014-05-13 12:01:50

标签: javascript

我正在试图找出编写一段利用函数语法的代码的最佳方法。

示例1: 看起来不错,但先验效率低,除非浏览器可以执行某种避免数组的优化不需要多次声明。

var isExcluded = function(e){
   var unwanted = ["orange", "tomato", "apple"]
   return unwanted.indexOf(e) === -1;
}

["orange", "melon", "apple"].filter(isExcluded).

示例2 效率更高,但看起来不那么整洁因为isExcluded应包含与元素相关的所有逻辑排除在外,而在这里它分布在两条线上。

var unwanted = ["orange", "tomato", "apple"];
var isExcluded = function(e){       
   return unwanted.indexOf(e) === -1;
}

["orange", "melon", "apple"].filter(isExcluded)

示例3 可能效率更高,看起来有点整洁,但我会说更难阅读。

var isExcluded = (function(){ 
   var unwanted = ["orange", "tomato", "apple"];
   return function(e){
     return unwanted.indexOf(e) === -1;   
   }

})();

["orange", "melon", "apple"].filter(isExcluded)

我希望对这三种方法有一些意见,从而带来最佳的可读性/效率比。

编辑: 请忘记浏览器支持评论,这不是问题的重点。

1 个答案:

答案 0 :(得分:0)

Array.prototype.filter()Array.prototype.indexOf()结合使用,并且所有当前浏览器都应支持["orange", "melone", "apple"].filter(function(e) { return ["orange", "tomato", "apple"].indexOf(e) != -1; });

{{1}}