Today I was introduced to a library new to me that has been out there for more than 6 years. LinqJs is a library bringing Linq styled syntax to the JavaScript world.

At the core, what Linq does for you is to remove all of the iteration logic from your visible code so that the things that you are intending to accomplish are not hidden behind all of the gymnastics of Enumeration. Enumeration is the technique of walking through a set of data for the purpose of applying some behavior to each record.

LinqJs begins by creating an IEnumerable wrapper around JavaScript sets, ie, arrays. Then it begins to add set operations you may call to apply against a set of objects transformed by the Enumeration function. Walking through the JavaScript code demonstrates some idea of how Microsoft may have implemented Linq in Dot Net.

For example, the LinqJs library has a function Where. You pass a function to the Where function. You function is applied to each record as it is enumerated, and based on a true/false value from your function, includes or excludes each record in the output.

There are many other functions which may be of interest for you to view. Join, Intersect, Except, Group By, Take, Skip, etc. are some of the many functions already available. If you are of a mind you can implement your own extensions to the library. You can get the library from github.com/neuecc/linq.js.



  • Mark Armstrong


    It shines a light on the idea of Functional Programming.

    Reasoning for using Linq vs. direct SQL when building apps with .Net.

    Beyond ORM, a progression that needs to be made when using EF. It’s purpose isn’t to just map database objects but to bring the developer into the world of Functional Programming which is inherent in JavaScript.

    Much can be learned from JavaScript Grasshopper…