6 ms·
Have you used the popular library Underscore.js http://underscorejs.org/ http://underscorejs.org/? The equivalent to your code in Underscore would be: _.ch
by spicyj 14y ago
Have you used the popular library Underscore.js http://underscorejs.org/ http://underscorejs.org/? The equivalent to your code in Underscore would be:
_.chain([1,2,3]).map(n => n * n).filter(n => n >= 2).value()
- wingspan 14y agoI did look at underscore when figuring out how to design the library, along with many JS LINQ variants (http://ianobermiller.com/blog/2012/09/19/linq-for-javascript/ http://ianobermiller.com/blog/2012/09/19/linq-for-javascript...). It should be pretty straightforward to provide Underscore bindings for TypeScript. One big difference in the library I was working on is that it is lazy, and modeled after .NETs IEnumerable. Whether this is a good thing or not, I'm not yet sure.
- sciolistse 14y agoI've made a lazy linq-like library for javascript in the past.. The problem i had was that the native array methods are rather fast while function calls (for moveNext) are quite slow, so i couldn't get a whole lot of speed out of it. Newer javascript engines might be sufficient to offset that though.
- wingspan 14y agoI tried to get around this by creating overloads of almost all methods when you are operating on an array. `each` for instance, has a standard implementation using moveNext, and then an array implementation using a fast for loop. In some cases you could even drop down to native function calls.
- sciolistse 14y agoSounds reasonable. Could be better timing now as well, what with server-side javascript having become popular. Good luck with the library!
- colin_jack 14y agoAs a .NET and JS developer underscore is definitely the secret sauce that means I don't miss linq at all. Lovely lovely little library.