惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
T
The Exploit Database - CXSecurity.com
Hacker News - Newest:
Hacker News - Newest: "LLM"
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
Martin Fowler
Martin Fowler
博客园 - 司徒正美
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
H
Heimdal Security Blog
O
OpenAI News
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
C
CXSECURITY Database RSS Feed - CXSecurity.com
Spread Privacy
Spread Privacy
博客园_首页
H
Help Net Security
阮一峰的网络日志
阮一峰的网络日志
Project Zero
Project Zero
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Help Net Security
Help Net Security
I
InfoQ
L
Lohrmann on Cybersecurity
V
V2EX
Y
Y Combinator Blog
V
Vulnerabilities – Threatpost
G
Google Developers Blog
S
Secure Thoughts
I
Intezer
Blog — PlanetScale
Blog — PlanetScale
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Vercel News
Vercel News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
N
News and Events Feed by Topic
S
Schneier on Security
NISL@THU
NISL@THU
B
Blog RSS Feed
F
Full Disclosure
U
Unit 42
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
博客园 - 【当耐特】
G
GRAHAM CLULEY

博客园 - Icebird

谈谈批处理文件里的注释 在.NET中使用PhysFS来挂载压缩包(zip) 用户中心 - 博客园 Password for ReportBuilder Enterprise v10.08 Retail For Delphi 7-Lz0 [Delphi] DUnitID 0.17.4725 RSSReader JavaScript Edition [Delphi] GetClass与RegisterClass的应用一例 DelForEx v2.5 for Delphi 2007 我的Delphi开发经验谈 JBookManager v1.00.2008314 (编辑管理您的Jar电子书) Windows优化大师的一点研究 [Delphi] 发布QuickenPanel Component [PowerShell] SFV生成与校验 [PowerShell] 将rar文件转换为zip格式 [PowerShell] GBK简繁转换 [PowerShell] PowerShell学习脚印 JavaScript测试页面 DevExpress ExpressScheduler 快速编译批处理文件 备份工具 SmartBackup的源代码
LINQ to JavaScript
Icebird · 2008-02-25 · via 博客园 - Icebird

今天正在看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: https://files.cnblogs.com/Icebird/JSLINQ_withSDK_v1.03.rar  (2008-02-10)