I have been using JavaScript for quite long, believing it is an old language. Today I just went to across how to define my own map reduce function in Lua, and came into my thought: if I could do this in Lua, then it is doable in JavaScript... just to discover that JavaScript has supported functional programming for long!
Open your browser console with F12:
[1,2,3].map(function(a) {return a*a}) // shows [1, 4, 9]
[1,2,3].reduce(function(a,b) {return a+b}) // shows 6
[1,2,3].filter(function(a) {return a>2}) // shows [3]
Flatten does not come out of the box, it can be added by one line:
Array.prototype.flatten = function() { return this.reduce(function(a,b) { return a.concat(b)})}
[[0,1],[2,3],[4,5,6]].flatten() // shows [0,1,2,3,4,5,6]
It made my day! :D
JavaScript is the best language invented ever!
ps: not supported by IE 8, which covers 8% of the Internet users.. ouch!