写点什么

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

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

关注

评论

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

淘宝一面:说一下 Spring Boot 自动装配原理呗?

java小李

面试 java 14 sping

面试题:JVM在Java堆中对对象的创建、内存结构、访问方式

java小李

java 14 sping

架构实战营-模块三

Cingk

向大佬学习!「mybatis查询匹配机制」,手动点赞

java小李

java 14 Mybati

深度融合,云管理平台助推政府实现“最多跑一次”改革

BoCloud博云

云计算 云管理平台 云管理

华为助力高校释放能量,加速中国从开源使用大国向贡献大国转变

科技热闻

基于 Java Spring Security 的关注微信公众号即登录的设计与实现ya

哈德韦

spring security 微信公众号 Apache Pulsar SSO

解决方案| 全民抗“灾”- 实时音视频在应急指挥场景的应用

anyRTC开发者

音视频 WebRTC 指挥调度

Vue进阶(九十四):自定义组件

No Silver Bullet

Vue 自定义组件 7月日更

速来围观!大佬把Java基础核心知识整理成了PDF版

java小李

Java开发手册 Java 开发

大学四年Java学习路线规划,所有私藏资料我都贡献出来了

java小李

spring Java web

FBI 警告称,网络犯罪分子可能以 2021 年东京奥运会为目标!

郑州埃文科技

如何借用第三方APM工具, 为移动应用保驾护航

APM

DAPP智能合约开发|智能合约搭建

Geek_23f0c3

区块链 智能合约 DAPP智能合约交易系统开发 DAPP系统开发

Recommending movies: retrieval

毛显新

tensorflow 推荐系统

被转载10W次的:Java小白系统资料和职业规划路线

java小李

java基础

《分享几道高频 Redis 高频面试题,面试不用愁》

java小李

Redis Stream

携生态伙伴展示AI计算盒参考设计最新成果 英特尔点亮智能边缘广阔机遇

E科讯

幸福的人在当下就活出了幸福的样子|靠谱点评

无量靠谱

技术解码 | GB28181协议简介及实践

腾讯云音视频

腾讯云 ffmpeg 流媒体 视频监控系统

架构训练营模块3课后作业-学生管理系统详设文档

喻高咏        

最新流行的6大优秀DevOps工具

java小李

java 14 puppeteer

被面试官问的Android问题难倒了,深度集成!

欢喜学安卓

android 程序员 面试 移动开发

一条SQL语句执行得很慢的原因盘点

北游学Java

Java MySQL

对象存储手把手教三 | 数据分段上传

QingStor分布式存储

对象存储 分布式存储 数据传输

DeFi智能合约DAPP开发|DeFi项目源码

Geek_23f0c3

DeFi去中心化系统开发 DAPP智能合约交易系统开发

GitHub标星139K的:“嵌入式Linux系统开发教程”

白亦杨

《MyCat数据库的基础配置及使用》

java小李

java 14 mycat

拨云开雾!阿里面试官力荐Java开发必看的操作系统底层原理PDF

Java架构追梦

Java 阿里巴巴 架构 面试 操作系统

行云创新完成B轮融资,阿里云独家投资

行云创新

阿里云 云原生 投资

请谈下Android消息机制,成功拿下大厂offer

欢喜学安卓

android 程序员 面试 移动开发

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