uwc: js implementation
authorRichard Kojedzinszky <krichy@tvnetwork.hu>
Tue, 14 Apr 2015 13:15:57 +0000 (15:15 +0200)
committerRichard Kojedzinszky <krichy@tvnetwork.hu>
Tue, 14 Apr 2015 13:16:07 +0000 (15:16 +0200)
uwc.js [new file with mode: 0644]

diff --git a/uwc.js b/uwc.js
new file mode 100644 (file)
index 0000000..bc09721
--- /dev/null
+++ b/uwc.js
@@ -0,0 +1,43 @@
+
+process.stdin.setEncoding('utf8');
+var stream = process.stdin.pipe(require('split')());
+var hash = { };
+var pattern = new RegExp("[a-z']+", "gi");
+
+stream.on('data', function(line) {
+               var matches = ('' + line).match(pattern);
+               if (!matches)
+                       return;
+
+               for (var i = 0; i < matches.length; ++i) {
+                       var w = matches[i];
+                       if (hash.hasOwnProperty(w)) {
+                               hash[w]++;
+                       } else {
+                               hash[w] = 1;
+                       }
+               }
+       });
+
+stream.on('end', function() {
+       var words = [];
+       for (w in hash) {
+               words.push(w);
+       }
+       words.sort(function(a, b) {
+               var d = hash[a] - hash[b];
+               if (d != 0)
+                       return d;
+
+               if (a < b) {
+                       return -1;
+               } else {
+                       return 1;
+               }
+       });
+
+       for (var i = 0; i < words.length; ++i) {
+               var w = words[i];
+               process.stdout.write(w + " " + hash[w] + "\n");
+       }
+});