写点什么

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

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

关注

评论

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

关于“React 和 Vue 该用哪个”我真的栓Q

京东科技开发者

Vue 前端 Vue 3 VUE 3.0 源码 react rout

公链defi质押挖矿分红dapp系统开发(合约定制)

开发微hkkf5566

Ten Million-Level Capacity Storage Solution of Student Management System - Examination

David

架构实战营

CSS3渐变-快来感受CSS的伟大吧(差点闪瞎我的狗眼)

肥晨

11月月更 css3渐变 conic-gradient

探索行为可回溯系统的应用与实现

GFE

前端 监控

Backdrop Filter

肥晨

css3 css特效 11月月更 css滤镜

Python 实现栈的几种方式及其优劣

宇宙之一粟

Python 数据结构 11月月更

vue中的几个高级概念

yyds2026

Vue

云小课|MRS基础原理之MapReduce介绍

华为云开发者联盟

大数据 华为云 企业号十月 PK 榜

基于qiankun的微服务落地实践

GFE

微服务 前端 qiankun

Wallys/Qualcomm IPQ5018 solution application wifi6 , support M.2 Card Slot for QCN9074 WIFI 6E Card

Cindy-wallys

802.11AX WIFI 6e ipq5018

Wallys//IPQ8072/IPQ8074/IPQ8072A/IPQ8074A/HighPower 802.11ax SoC for Routers, Gateways and Access Points

Cindy-wallys

802.11AX IPQ8072 IPQ8074 HighPower

币安DAPP系统开发技术概念及篡改逻辑

I8O28578624

“鸿蒙生态专家面对面”技术交流会,专家齐聚,等你前来!

HarmonyOS开发者

HarmonyOS

用git上传项目到GitHub或者码云全过程

肥晨

代码上传 githun 11月月更 Git上传

11月必须要了解的一项福利

夏夜许游

AI 双十一 视觉智能

如何更改 datax 以支持hive 的 DECIMAL 数据类型?

明哥的IT随笔

hadoop hive

基于BPMN2.0的业务流程引擎

GFE

前端 BPMN 流程引擎

测试小白到月薪30K+的测试大佬学习路线图

千锋IT教育

pyside6 qml 自定义边框

Mr_No爱学习

vue实战-完全掌握Vue自定义指令

yyds2026

Vue

没想到GoFrame的gcache天然支持缓存淘汰策略

王中阳Go

Go golang 高效工作 学习方法 11月月更

量化合约系统开发逻辑篡改方案

I8O28578624

升级到React-Router-v6

xiaofeng

React

几个你必须知道的React错误实践

xiaofeng

React

【解决】前端开发中的5大痛点

GFE

前端

京东云开发者|提高IT运维效率,深度解读京东云AIOps落地实践

京东科技开发者

人工智能 异常检测 时序架构 运维‘

RocketMQ Flink Catalog 设计与实践

了凡跨境洞察

flink Apache RocketMQ catalog

计算机网络:电路、报文与分组交换

timerring

计算机网络 11月月更

你要的react+ts最佳实践指南

xiaofeng

React

即时通讯技术文集(第4期):不为人知的网络编程 [共14篇]

JackJiang

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