写点什么

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:242215
用户头像

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

关注

评论

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

干货丨中国移动5G数字工厂引领工业数字化未来(附PPT)

工赋开发者社区

基于Kubernetes的Serverless PaaS稳定性建设万字总结

Serverless Devs

云计算 Serverless 运维 托管

文档信息抽取技术:从非结构化文本到结构化信息的旅程

合合技术团队

人工智能 技术 文档 文档抽取

ByConity 技术详解之 ELT

字节跳动开源

大数据 开源 实时数仓 Clickhouse 数仓

用友第五届开发者大赛初赛晋级公示,复赛火热进行中!

YonBuilder低代码开发平台

一篇聊聊Mybatis插件开发

互联网工科生

sql 数据 mybatis

软件测试/测试开发丨ChatGPT在测试计划中的应用策略

测试人

人工智能 软件测试 测试开发 ChatGPT

Mac苹果电脑无线鼠标连不上怎么办

柠檬与橘子

Golang 的 GMP:并发编程的艺术

树上有只程序猿

golang GMP

哪款国产堡垒机好用便宜实惠?大家推荐一下!

行云管家

网络安全 数据安全 堡垒机 国产

【华秋干货铺】双面混装PCBA过波峰焊时,如何选用治具?

华秋电子

PCB

如何正确地计算经过时间(elapsed time)

redcoder54

Java 时钟同步

脱颖而出!云起无垠荣获第二届“陇剑杯”优胜奖

云起无垠

入门有监督学习:数据、模型、度量

麦田的守望者

机器学习 有监督学习

软件测试/测试开发丨利用人工智能ChatGPT自动生成架构图

测试人

人工智能 软件测试 ChatGPT

鲸鸿动能加入气候行动,与野生救援(WildAid)探索公益新玩法

最新动态

【效率提升】maven 转 gradle 实战 | 京东云技术团队

京东科技开发者

maven 编译 Gradle 打包工具 企业号9月PK榜

从 Hackathon 战队到创业公司,和开发者们聊聊真实世界 AI Apps 的基础设施丨活动预告

PingCAP

数据库 开发 hackathon TiDB pingCAP

深度学习之“切图”

矩视智能

深度学习

深入探讨Java面试中内存泄漏:如何识别、预防和解决

程序那些事

Java 程序那些事 面试秘籍

企业微信 API 接口调用教程:从入门到精通

Liam

后端 后端开发 API 开放 API 企业微信开发

安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配

OpenAnolis小助手

操作系统 龙蜥社区 兼容适配 安全联盟 安恒信息

PPT | 智能工厂生产制造执行系统(MES)建设方案

工赋开发者社区

华秋应邀精彩亮相IOTE物联网展

华秋电子

IOTE

广东汕头等保测评机构有哪些?位于哪里?

行云管家

等保 等级保护 等保测评 汕头

聊聊wireshark的进阶使用功能 | 京东云技术团队

京东科技开发者

网络协议 Wireshark 抓包 企业号9月PK榜

这个时代,由消费主导的敏态数据更值钱

ToB行业头条

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