linq.js has been doing this for years now. Its a mature library, flexible and light.
I use it for every web project, wouldn't know what to do with out it.
<a href="http://linqjs.codeplex.com/" rel="nofollow">http://linqjs.codeplex.com/</a>
Examples: <a href="http://neue.cc/reference.htm" rel="nofollow">http://neue.cc/reference.htm</a><p><pre><code> Features
--------------------------------------
implement all .NET 4.0 methods and many extra methods
(inspiration from Rx, Achiral, Haskell, Ruby, etc...)
complete lazy evaluation
full IntelliSense support for VisualStudio
two versions - linq.js and jquery.linq.js (jQuery plugin)
support Windows Script Host
binding for Reactive Extensions for JavaScript(RxJS) and
IntelliSense Generator -> see documentation
NuGet install support(linq.js, linq.js-jQuery, linq.js-Bindings)
90 Methods
----------------------------------------
Aggregate, All, Alternate, Any, Average, BufferWithCount,
CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice,
Concat,Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do,
ElementAt, ElementAtOrDefault, Empty, Except, Finally, First,
FirstOrDefault, Flatten, ForEach, Force, From, Generate,
GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect,
Join, Last, LastIndexOf,
LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min,
MinBy, OfType, OrderBy, OrderByDescending, Pairwise,
PartitionBy, Range, RangeDown, RangeTo, Repeat,
RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany,
SequenceEqual, Share, Shuffle,
Single, SingleOrDefault, Skip, SkipWhile, Sum, Take,
TakeExceptLast, TakeFromLast, TakeWhile, ThenBy,
ThenByDescending, ToArray,
ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity,
ToObject, ToString, Trace, Unfold, Union, Where, Write,
WriteLine, Zip</code></pre>