写点什么

JSINQ——LINQ 的 JavaScript 实现

  • 2009-02-11
  • 本文字数:776 字

    阅读完需:约 3 分钟

JSINQ 代表 JavaScript INtegrated Query,它是用 JavaScript 实现 LINQ to Objects 的 beta 项目,最近由 Kai Jäger 在 CodePlex 网站上发布。JSINQ 包含两个模块,Enumerable 和 Query 相应地实现 System.Linq.Enumerable System.Linq.Queryable ,它可枚举字符串、DOM 节点类别或者其他对象。

两个模块分别是 jsinq.Enumerable 和 jsinq.Query。查询示例,如下所示:

复制代码
var query = new jsinq.Query('\
from order in $1 \
group order by order.customerId into g \
select {customerId: g.getKey(), items: g.sum(function(g) { return g.items; })} \
into h \
join customer in $0 on h.customerId equals customer.id \
where h.items > 10 \
orderby h.items descending \
select {lastname: customer.lastname, items: h.items} \
');
query.setValue(0, customers);
query.setValue(1, orders);
var result = query.execute();

枚举示例,如下所示:

复制代码
var enumerator = namesThatStartWithAnA.getEnumerator();
while (enumerator.moveNext()) {
var name = enumerator.current();
document.write(name + '<br />');
}

根据 Kai 的说法,JSINQ 可以完成下列任务:

  • 针对 JavaScript 字符串、DOM 节点列表或者自定义枚举类型,编写任意复杂的查询
  • 在 HTML 的 DOM 树中使用 SQL 风格的查询语法找出相应的元素
  • 从藉由 XMLHttpRequest 获取而来的 JSON 中以声明的方式动态创建 HTML 元素
  • 修改 XML 并把它转换为其他格式
  • 把正使用的 JavaScript 或 Ajax 框架以有趣的方式关联
  • 利用声明性编程的好处来减少编码量
  • 以及让喜欢挑战的编程人员编写射线追踪器(算法)、包含多个单一解析器的组合器等

Kai 已经提供了相关网页让大家测试JSINQ 。可以从CodePlex 免费下载基于 MIT 许可证源代码。类似的项目还有: JSLINQ 和 ** JLINQ。**

查看英文原文: JSINQ, a JavaScript Implementation of LINQ

2009-02-11 03:242184
用户头像

发布了 87 篇内容, 共 21.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

业务-研发一体化管理平台,存在吗?

FinFish

小程序 小程序管理平台 小程序技术

华为云服务治理 — 隔离仓的作用

秃头也爱科技

DCS分布式缓存服务实例类型介绍

秃头也爱科技

ZBC即将登录Coinbase Institutional,2023年以全新姿态出发

BlockChain先知

“会说话”的产品包装?“码”上查看!

旺链科技

区块链 区块链技术 区块链溯源

2022年度 FinClip 扩展SDK推荐!

FN0

小程序 sdk SDK 教程

【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin

洛神灬殇

dubbo RPC Dubbo3 Dubbo-Admin

ZBC即将登录Coinbase Institutional,生态开年迎新利好

西柚子

华为云发布CodeArts Check代码检查服务,守护软件质量和安全

IT科技苏辞

推荐一款较好的小程序管理平台

FinFish

小程序 小程序管理平台 小程序管理

ZBC即将登录Coinbase Institutional,生态开年迎新利好

股市老人

爆竹声响又是一年春节到 归心似箭阖家团圆享美食

Geek_2d6073

华为云服务治理 | 微服务常见故障模式

IT科技苏辞

90%开发都会忽略的性能调优点:针对返回大数据量的接口,10分钟内找到提升带宽瓶颈的突破口

KINDLING

Java 性能调优 响应时间 ebpf 排障

华为云代码检查插件(CloudIDE版本)使用指南

与时俱进的时代

华为云发布CodeArts Req需求管理工具,让需求管理化繁为简

科技怪授

华为云

「Go框架」剖析iris中错误码路由的运行机制

Go学堂

golang 开源 个人成长 签约计划第三季

数据中心的浪浪山

脑极体

Linux Radix Tree详解

Linux内核拾遗

数据结构 Linux内核 Radix Tree

揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!

科技怪授

华为云

简述JavaScript异步函数 async/await

devpoint

JavaScript Async await es7

大型软件通过“云应用”即点即用,能解决元宇宙的开发之难吗?

B Impact

2022年的魔力象限领导者,为什么是华为数通?

白洞计划

华为

Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】task1 赛题理解

一颗小树

机器学习 机器学习笔记

简述JavaScript键盘事件

devpoint

JavaScript 事件监听 事件冒泡 键盘事件

ZBC即将登录Coinbase Institutional,生态开年迎新利好

鳄鱼视界

2022 年行摄回忆录

穿过生命散发芬芳

盘点2022 行摄回忆录

技术人职场系列-务虚与务实

CatTalk

技术人生 职场发展

华为云服务治理 | 服务治理的一般性原则

与时俱进的时代

高效节能 | 智慧灯杆综合管理解决方案

AIRIOT

物联网 智慧灯杆

JSINQ——LINQ的JavaScript实现_.NET_Abel Avram_InfoQ精选文章