A JavaScript MapReduce One-Liner
After my post on "Word frequency using MapReduce in Python," I got my paws dirty with some silly Javascript. Once I reduced a whole chunk of code, it turned out to be a simple one-liner in JavaScript. A linear implementation of MapReduce, but it was fun and indeed will be useful if on node.js.
Enough talking! Below is the one liner that will give the word frequency in JSON format.
One-liner:
String.prototype.map_reduce = function(){return this.toLowerCase().split(/\W+/g).reduce(function (t, w) { if (w) t[w] = (t[w] || 0) + 1; return t; }, {}).toSource()}
The prettier version:
String.prototype.map_reduce = function () { return this.toLowerCase(). split(/\W+/g). reduce(function (t, w) { if (w) { t[w] = (t[w] || 0) + 1; } return t; }, {}). toSource() }
Example :
>>> "The quick brown fox jumped over the lazy".map_reduce()
>>> "({the:2, quick:1, brown:1, fox:1, jumped:1, over:1, lazy:1, dog:1})"
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)
Comments
Thomas Eichberger replied on Thu, 2012/10/04 - 1:32am