JSINQ(リンク)は、JavaScript INtegrated Queryを表し、LINQ to ObjectsをJavaScriptに実装するベータプロジェクトである。最近はKai Jager氏によってCodePlexで リリースされた。JSINQにはEnumerableおよびQueryの2つのモジュールがあり、それぞれSystem.Linq.Enumerable(リンク)およびSystem.Linq.Queryable(リンク)を実装している。配列、DOMノードリストまたは他のオブジェクト上での列挙を可能にする。
2つのモジュールは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 + '
');
}
Kai氏によると、JSINQは以下のことができる。
Kai氏は、誰でもJSINQをテストできるようにとWebページ(リンク)を設置した。ソースコード(リンク)は、MITライセンス(リンク)下でCodePlexから無償でダウンロードすることができる。他の同様のプロジェクトには、JSLINQ(リンク)およびJLINQ(リンク)がある。
原文はこちらです:http://www.infoq.com/news/2009/02/JSINQ-JavaScript-LINQ