硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

前端工程师 2022 年必备的 7 个工具

开源之巅

JavaScript node.js

在线YAML转TOML工具

入门小站

工具

“在线设计”网络资源管理的源头活水

鲸品堂

通信运营商 在线设计平台

手把手教你丨小熊派移植华为 LiteOS-M

华为云开发者联盟

华为 鸿蒙 LiteOS 小熊派 移植

自动驾驶浪潮下,如何给技术迭代插上数据的“翅膀”?

澳鹏Appen

人工智能 自动驾驶 智能汽车 智能驾驶 数据标注

必读!如何有效的进行沟通

观测观测

从智能汽车到智慧出行,区块链能打通车联网的任督二脉吗?

CECBC

直播回顾:准确性提升到 5 秒级,ssar 独创的 load5s 指标有多硬核?| 龙蜥技术

OpenAnolis小助手

Linux 开源

亚信科技AntDB数据库荣获“2021金融科技应用创新突出贡献奖”

亚信AntDB数据库

AntDB 金融行业 亚信科技

行业先锋畅聊 Flink 未来 —— FFA 2021 圆桌会议(北京)

Apache Flink

大数据 flink 编程 后端 实时计算

恒源云(GPUSHARE)_AdderSR: Towards Energy Efficient Image Super-Resolution学习笔记

恒源云

人工智能 深度学习 计算机视觉

恒源云(GPUSHARE)_attention decoder效果不佳时如何应对

恒源云

深度学习 计算机视觉

微信的业务架构图和学生管理系统的毕业设计

Geek_8d5fe5

架构实战营

流批一体技术框架探索及在袋鼠云数栈中的实践

袋鼠云数栈

携程DBA负责人俞榕刚:OceanBase在携程的落地和实践

OceanBase 数据库

数据库 分布式 OceanBase 开源 携程 客户实践

用 docker 快速搭建 kafka(qbit)

qbit

kafka zookeeper docker image

一款基于Java语言开发的,开源商业应用的模块化开发框架和智能管理平台-Axelor

马农驾驾驾

Java 系统开发 BPM 开发框架 智能管理

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源 社群 合作伙伴

第三方测评:GaussDB(for Redis)稳定性与扩容表现

华为云开发者联盟

redis 华为云 GaussDB(for Redis) NoSQL数据库 云原生NoSQL数据库

高并发环境下,6个构建缓存服务需要注意的问题

华为云开发者联盟

缓存 高并发 开发 并发 缓存服务

SparkSQL的入门实践教程

华为云开发者联盟

sql spark 编程 Sparksql 结构化数据

2022年保障企业内网安全就用行云管家!免费试用!

行云管家

云计算 云平台 内网 云管平台

Flutter启动流程分析之插件化升级探索

得物技术

flutter Weex Google 框架 原生

“以终为始”的正确使用方式

石云升

思维模型 1月月更

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源

Linux之wc命令

入门小站

Linux

农业掀起“上链”潮 区块链等数字技术正成为乡村振兴新动力

CECBC

五步实现HarmonyOS应用(ets)【鸿蒙开发 07】

坚果

鸿蒙 1月月更

异步调用如何使用是最好的方式?

CRMEB

企业上云后,不容忽视的管理工具-云管平台

行云管家

云计算 企业上云 云管平台 云管理

☕【Java深层系列】「并发编程系列」让我们一起探索一下CompletionService的技术原理和使用指南

码界西柚

Java 线程池 CompletionService 异步执行 1月日更

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