2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

《数字经济全景白皮书》Z世代用户洞察篇(2)重磅发布!

易观分析

Z世代

豆瓣评分9.0,时隔6年,“Linux命令行圣经”新版终于来了!

图灵教育

Linux shell脚本编程

Android C/C++层hook和java层hook原理以及比较

云智慧AIOps社区

Java android 开发技能 hook

图数据库|正反向边的最终一致性——TOSS 介绍

NebulaGraph

图数据库 知识图谱

博云 BeyondCMP 云管理平台 5.6 版本发布

BoCloud博云

云管理平台

阿里云代码托管平台,不限容量,免费使用

阿里云云效

云计算 阿里云 代码管理 代码托管 阿里云代码托管

什么是代码加密?基于云效 Codeup的代码仓库加密是如何实现的

阿里云云效

云计算 阿里云 代码管理 Codeup 代码加密

TDesign 更新周报(2022 年 4 月第 3 周)

TDesign

国产化云平台如何实现多云管控,黄河云来“打样儿”

BoCloud博云

国产化 云管理平台

2022年中国茶饮产业洞察

易观分析

茶饮 产业洞察

Serverless 让我们的运维更轻松

领创集团Advance Intelligence Group

#Serverless

以OceanBase为例,分析事务型评测基准对分布式数据库的适用性

OceanBase 数据库

分布式数据库 oceanbase

TASKCTL 变量的函数表达式运算

敏捷调度TASKCTL

批量任务 调度引擎 ETL 自动化运维 调度任务

【数据安全与流通专题】星环科技春季新品发布周

星环科技

TASKCTL 连接不到服务器的4种情况

敏捷调度TASKCTL

分布式 调度引擎 ETL 自动化运维 调度任务

优秀程序员的30种思维(29/100)

hackstoic

技术思维

当 API 成为服务,我们将连接一切!

鼎道智联

书单 | “阿里云数字新基建”系列丛书全家福来啦!

博文视点Broadview

用css制作旋转的立方体

云智慧AIOps社区

CSS 前端 大前端 3D css特效

【愚公系列】2022年04月 二十三种设计模式(零)-简单工厂模式(Simple Factory Pattern)

愚公搬代码

4月月更

火遍全网的MBTI人格测试,为什么会有那么多人相信?

小炮

MBTI

高效进行接口测试,简单易懂!

Liam

测试 Jmeter Postman swagger 测试工具

物联网低代码平台常用《组件介绍》

AIRIOT

开发 物联网 平台搭建、

移动端日历组件设计与实现

CRMEB

过去一周热点回顾|Hoo虎符研究院 区块链简报 20220418期

区块链前沿News

虎符交易所

MySQL事务并发带来的问题以及其解决方案分析

乌龟哥哥

4月月更

LSM-Tree - LevelDb了解和实现

懒时小窝

LSM树 LSM-Tree

HLP分词后的文本如何在web端高亮显示

lo

前端 4月月更

深圳助力建设全国「数据交易」大市场,「隐私计算」技术赋能数据要素安全流通

洞见科技

如何做好任务管理,手把手教你怎么做最高效的任务管理

阿里云云效

云计算 阿里云 云原生 研发团队 项目协作

易周金融观点:遏制NFT金融化等打下监管良基

易观分析

NFT

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