AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

零代码Demo Day大赛热烈开启,迎接挑战,赢取万元大奖!

明道云

文心一言 VS 讯飞星火 VS chatgpt (70)-- 算法导论6.5 9题

福大大架构师每日一题

福大大架构师每日一题

TiDB Serverless 正式商用,全托管的云服务带来数据管理和应用程序开发的全新体验

PingCAP

MySQL 云服务 TiDB pingCAP TiDB Serverless

唐刘:TiDB 研发工程实践及 TiDB 人才观丨CCF 中国数据库暑期学校

PingCAP

数据库 TiDB pingCAP

10个学习JavaScript的理由

互联网工科生

JavaScript 学习 前端 编程语言

面试官:线程是如何通讯的?

王磊

java面试

基金公司最佳实践:如何用价值流分析,洞察研发效能瓶颈?

万事ONES

秒验 REST API 手机号码置换接口

MobTech袤博科技

前端 App 前端开发 前端开发工具

陕西玖富建设工程有限公司简介

新消费日报

基于Vue3的数据可视化低代码平台

互联网工科生

Vue 低代码 vue3.0 JNPF

NFTScan 团队发布升级版 NFT Portfolio 产品

NFT Research

NFT\

如何使用三台虚拟机搭建一个kubernetes集群?

数新网络官方账号

Kubernetes, 云原生, eBPF

途游游戏 x 极狐GitLab “通关” DevOps :单元测试从无到优,覆盖率 0→80%

极狐GitLab

DevOps gitlab Code Review DevSecOps 途游游戏

山歌寥哉!生产制造系统需要新治理框架

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

解决大模型“开发难”,昇思MindSpore自动并行技术应用实践

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

云渲染:为你的设计作品增添细节与逼真感!

Finovy Cloud

3D渲染 渲染 云渲染 云渲染农场

erp企业管理系统软件哪个最好用?

优秀

ERP系统 ERP软件

字节码增强常见问题系列(二)| 兼容性难题:如何让不同字节码增强框架和谐共存?

华为云开源

字节码增强 sermant

QuickBI提供数据可视化分析功能的工具,企业免费使用

夜雨微澜

第五届宁波市卫生健康系统信息化技能竞赛暨赛前培训成功举办 平凯星辰受邀授课

PingCAP

数据库 TiDB 平凯星辰

代码随想录 Day37 - 贪心算法(六)

jjn0703

vpay数字货币钱包系统开发(Imtoken、TP)

薇電13242772558

数字钱包

百度飞桨助力高校培养AI大模型人才,2023年飞桨产学合作项目申报启动

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

分布式流处理组件-生产实战:Broker副本与优化

谢先生F

kafka 架构 broker

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