关于json:JavaScript库的领先LINQ是什么?

What is the leading LINQ for JavaScript library?

我正在寻找一个JavaScript库,它允许我使用类似LINQ的语法查询复杂的JSON对象。快速搜索发现了一些有希望的选项,它们可能提供我需要的:

linq到javascript和jlinq

  • 有什么经验吗使用它们?
  • 有哪些利弊?
  • 性能是否可比?
  • 函数是否传递语法linq to javascript提供任何隐藏的好处(我个人认为一开始更具吸引力一瞥)?
  • 你发现缺少什么在两个项目中?
  • 你试过联系作者吗?他们的反应如何?
  • 哪个项目使用得更广泛?

编辑:

今天刚看到这个:jslinq。

我认为这将是第一次进行彻底的试验。


您可能想查看linq.js。它遵循.NET lambda语法,并且看起来很好地集成在Microsoft环境中。

linq for javascript-http://linqjs.codeplex.com/

赞成的意见

  • 实现所有.NET 4.0方法
  • 完成延迟评估
  • 对VisualStudio的完全IntelliSense支持
  • 支持jQuery
  • 支持Windows脚本宿主
  • javascript(rxjs)和IntelliSense生成器的无功扩展绑定
  • Nuget安装支持
  • 最近更新(最新版本2011年1月)
  • 语法符合C中的lambda语法#

欺骗

  • linq.js库有点大。
  • 如果您已经在使用jquery或其他JS库,那么最常用的功能可能已经可用。请特别参见jquery的过滤器和"any"方法。


在广泛使用的JS库中,最基本和最常用的LINQ操作符是非常常见的。他们只是有不同的名字(事实上,他们有比林肯更传统的名字)。Select变为mapWhere变为filterFirstFirstOrDefault变为[0]

我所知道的几乎没有一个库(包括您链接到的库)会像在.NET LINQ中那样费心让实现变得懒惰,它们只是使用数组立即进行评估。

要获得一组非常好、完整的功能列表操作,请尝试:http://ostele.com/sources/javascript/functional/


你看到过Rx for javascript吗?这就是你想要的。


我建议您看看underline.js。它不像其他港口那样是一个直接的LINQ港口,而是一个非常舒适的"LINQ式"体验。它支持我所需要的所有过滤器、排序和项目选项,并且拥有优秀的文档和社区支持。

作为淘汰用户的额外奖励,有一个underlineko将underline的数组方法添加到淘汰的可观察数组中。演示


I personally find the LINQ/set operations Union, Intersect, Except and Distinct on enumerables in .NET. very useful. There is a jquery plugin called jQuery Array Utilities which provides these methods to be used on arrays.

Code examples:

1
$.distinct([1, 2, 2, 3])

返回[1,2,3]

1
$.union([1, 2, 2, 3], [2, 3, 4, 5, 5])

返回[1,2,3,4,5]

1
$.instersect([1, 2, 2, 3], [2, 3, 4, 5, 5])

返回[2,3]

1
$.except([1, 2, 2, 3], [3, 4, 5, 5])

收益率〔1, 2〕


$linq:http://jscriptlinq.codeplex.com/

[cc lang="javascript"]var users = [{username:"asmith", domain:"north_america


I've tried out most of these -- and I really like $linq: http://jscriptlinq.codeplex.com/ the best. It simply works the way you would expect c# linq to work -- including the chain ability.


There are some duplicating libraries out there that try to port LINQ to JavaScript with a similar syntax and method names. However, in the JS community, the library that is getting really popular and providing the same functionality is Underscore.js.


I'm looking for something like this myself and came across...

http://www.hugoware.net/Projects/jLinq

This looks really great! Maybe I just don't understand the point of Rx and observables compared to setting event handlers through something like jQuery.


我最近制作了一个用于JavaScript的Linq库。它实现了.NET提供的大多数LINQ函数,是所有LINQ库中速度最快的。

网址:http://fromjs.codeplex.com/