BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

JSINQ——LINQ的JavaScript实现

| 作者 Abel Avram 关注 8 他的粉丝 ,译者 王波 关注 0 他的粉丝 发布于 2009年2月12日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

JSINQ代表JavaScript INtegrated Query,它是用JavaScript实现LINQ to Objects的beta项目,最近由Kai Jäger在CodePlex网站上发布。JSINQ包含两个模块,Enumerable和Query相应地实现System.Linq.EnumerableSystem.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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT