LINQ for JavaScript.
Archive, import from Codeplex.
I recommend use fork version - mihaifm/linq
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
Get v3 branch or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre, linq.js-RxJS -Pre, linq.js-QUnit -Pre
All methods becomes lower-camel-case.
var jsonArray = [ { "user": { "id": 100, "screen_name": "d_linq" }, "text": "to objects" }, { "user": { "id": 130, "screen_name": "c_bill" }, "text": "g" }, { "user": { "id": 155, "screen_name": "b_mskk" }, "text": "kabushiki kaisha" }, { "user": { "id": 301, "screen_name": "a_xbox" }, "text": "halo reach" } ] // ["b_mskk:kabushiki kaisha", "c_bill:g", "d_linq:to objects"] var queryResult = Enumerable.From(jsonArray) .Where(function (x) { return x.user.id < 200 }) .OrderBy(function (x) { return x.user.screen_name }) .Select(function (x) { return x.user.screen_name + ':' + x.text }) .ToArray(); // shortcut! string lambda selector var queryResult2 = Enumerable.From(jsonArray) .Where("$.user.id < 200") .OrderBy("$.user.screen_name") .Select("$.user.screen_name + ':' + $.text") .ToArray();High compatibility with C# Linq
// C# LINQ (delegate) Enumerable.Range(1, 10) .Where(delegate(int i) { return i % 3 == 0; }) .Select(delegate(int i) { return i * 10; }); // linq.js - anonymous function Enumerable.Range(1, 10) .Where(function(i) { return i % 3 == 0; }) .Select(function(i) { return i * 10; }); // C# LINQ (lambda) Enumerable.Range(1, 10).Where(i => i % 3 == 0).Select(i => i * 10); // linq.js - lambda expression Enumerable.Range(1, 10).Where("i => i % 3 == 0").Select("i => i * 10"); // $ is default iterator variable like Scala's "_" or Groovy's "it" Enumerable.Range(1, 10).Where("$ % 3 == 0").Select("$ * 10"); // "" is shorthand of "x => x" (identity function) Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), "", "", "outer,inner=>outer*inner"); // Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc.. var array = [100, 200, 30, 40, 500, 40, 200]; var ex1 = Enumerable.From(array).Distinct().ToArray(); // [100, 200, 30, 40, 500] var ex2 = Enumerable.From("foobar").ToArray(); // ["f", "o", "o", "b", "a", "r"]; var ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); // [{Key:"foo",Value:10}, {Key:"bar",Value:20}] // C# - AnonymousType array.Select((val, i) => new { Value = val, Index = i }); // linq.js - object literal Enumerable.From(array).Select("val,i=>{Value:val, Index:i}")
// $.Enumerable $.Enumerable.Range(1, 10).Where("$%2==0").ForEach("alert($)"); // TojQuery - Enumerable to jQuery $.Enumerable.Range(1, 10) .Select(function (i) { return $("<option>").text(i)[0] }) .TojQuery() .appendTo("#select1"); // toEnumerable - jQuery to Enumerable var sum = $("#select1").children() .toEnumerable() .Select("parseInt($.text())") .Sum(); // 55
// get folder name and file name... var dir = WScript.CreateObject("Scripting.FileSystemObject").GetFolder("C:\\"); // normally var itemNames = []; for (var e = new Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext()) { itemNames.push(e.item().Name); } for (var e = new Enumerator(dir.Files); !e.atEnd(); e.moveNext()) { itemNames.push(e.item().Name); } // linq.js var itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select("$.Name").ToArray();
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4