LINQ to JavaScript

非 Y 不嫁゛ 提交于 2020-04-06 05:44:55
今天正在看The Art and Science of JavaScript,突然想到javascript里也应该有关于LINQ的实现,于是Google了一下,果然发现LINQ to JavaScript这个OpenSource Project。

介绍
LINQ to JavaScript (JSLINQ) 是LINQ在JavaScript上的实现。其为JS的Array对象上增加了一系列扩展方法。如果你要用到Array,那么你就可以使用JSLINQ。

如果你还不了解什么是LINQ;LINQ是.NET Framework 3.5支持的新特性,其可以允许像SQL查询一样操作各种类型的数据。LINQ to JavaScript就是专门为数组提供查询的能力。

用法示例
var myList = [
            {FirstName:
"Chris",LastName:"Pearson"},
            {FirstName:
"Kate",LastName:"Johnson"},
            {FirstName:
"Josh",LastName:"Sutherland"},
            {FirstName:
"John",LastName:"Ronald"},
            {FirstName:
"Steve",LastName:"Pinkerton"}
            ];
            
var exampleArray = From(myList).
                   Where(
"item.FirstName == 'Chris'").
                   OrderBy(
"item.FirstName").
                   Select(
"item.FirstName");

 

使用LINQ to JavaScript

我们使用下面的数组来作为例子演示:
var myList = [
            {FirstName:
"Chris",LastName:"Pearson"},
            {FirstName:
"Kate",LastName:"Johnson"},
            {FirstName:
"Josh",LastName:"Sutherland"},
            {FirstName:
"John",LastName:"Ronald"},
            {FirstName:
"Steve",LastName:"Pinkerton"}
            ];

就像在.NET中一样的使用From操作符
From操作符不是必须的,写上的话可以使得看上去更像LINQ的语法。
var example = From(myList);

使用Where操作符来限定查询条件
如下所示,我们会得到数组里全部属性FirstName值为Chris的对象。
// 传入的是查询表达式var whereExample1 = From(myList).                      Where("item.FirstName == 'Chris'"); // 传入的是查询函数方法var whereExample2 = From(myList).                      Where(function(item){return item.FirstName == 'Chris';});

使用Select操作符来指定返回的数据
如下所示,我们会得到数组里的每个元素的FirstName属性。
// 传入的是查询表达式var selectTest1 = From(myList).                Select("item.FirstName"); // 传入的是查询函数方法var selectTest2 = From(myList).                Select(function(item){return item.FirstName;});
使用OrderBy操作符来决定怎样对数组中的元素进行排序
如下所示,我们会得到按FirstName属性排序后的数组。
// 传入的是查询表达式
var sortTest1 = From(myList).
             OrderBy(
"item.FirstName");
 
// 传入的是查询函数方法
var sortTest1 = From(myList).
             OrderBy(
function(item){return item.FirstName});



HomePage: http://www.codeplex.com/JSLINQ
Download: http://www.cnblogs.com/Files/Icebird/JSLINQ_withSDK_v1.03.rar  (2008-02-10)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!