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)