写点什么

JSINQ——LINQ 的 JavaScript 实现

2009 年 2 月 11 日

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 年 2 月 11 日 03:241674
用户头像

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

关注

评论

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

智能计算的武侠美学,正在城市上空上演

脑极体

「架构师训练营第 1 期」第八周作业

张国荣

架构师训练营第八周学习总结

文智

性能优化 极客大学架构师训练营

架构师训练营 - 第八周

袭望

Week 8 作业02

Croesus

架构训练营第四周作业

一期一会

架构师

【架构师训练营第 1 期 08 周】 作业

Bear

极客大学架构师训练营

第八周作业 (作业二)

Geek_83908e

极客大学架构师训练营

架构师训练营第八周作业

月殇

极客大学架构师训练营

第一次电话面试

escray

面经 面试经历 101次面试

技术与艺术的一点感悟

Tanzv

技术 思考 文化 思维

第四周总结

孤星

第五周作业

willson

极客大学架构师训练营

[架构师训练营第 1 期] 第八周命题作业

猫切切切切切

极客大学架构师训练营

MySQL主从复制的原理和注意事项都在这儿了!!

冰河

MySQL 分布式数据库 主从复制 读写分离 并行复制

架构第七周作业

Geek_Gu

极客大学架构师训练营

第四周-作业一

Mr_No爱学习

第四周笔记

willson

极客大学架构师训练营

极客大学架构师训练营第四周作业

井中人

极客大学架构师训练营

架构师训练营第 1 期 week8 总结

张建亮

极客大学架构师训练营

架构师训练营第 1 期第 9 周作业

业哥

架构师训练营第四周总结

张浩

第四周--学习总结

Mr_No爱学习

架构2期第4周作业

supersky6

第八周作业 (作业一)

Geek_83908e

极客大学架构师训练营

第四周作业

willson

极客大学架构师训练营

架构第七周总结

Geek_Gu

极客大学架构师训练营

架构师训练营第四周作业

张浩

与前端训练营的日子 --Week03

SamGo

学习

week08学习总结

追风

架构师一期

架构师训练营第八周总结

吴传禹

极客大学架构师训练营

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

JSINQ——LINQ的JavaScript实现-InfoQ