日期:2014-05-16  浏览次数:20371 次

码农干货系列【5】--lambda in js:lambda.js 1.0.0发布

lambda.js的由来

作为一个当耐特程序员,对lambda一定不陌生。随着当耐特版本的更新迭代,C#也由委托==〉匿名委托==〉lambda表达式。由于javascript语言的约束,没有提供相应的lambda的机制,所以就有了lambda.js,让广大jser也可以?(a,b)=>a.xx==”yyy”&&b>11?一把!

Query Operator

而lambda最常用的地方就是Query Operator。

比如下面一些C# code:

int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);

对应的javascript code(不使用lambda.js)

var numbers = [ 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 ];
var oddNumbers = _(numbers).count(function (item) { return item % 2 === 1 });

使用lambda.js之后

var numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];
var oddNumbers = _(numbers).count(_("a=>a%2===1"));

仅此而已?

lambda.js当然提供了underscore.js和JSLINQ都包含的功能!当然lambda.js编程风格更接近jquery style(连缀,大部分方法返回lambda对象)。

        
        var numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];
        var oddNumbers = _(numbers).count(_("a=>a%2===1"));

        console.log(oddNumbers===5)