3 var fs = require( "fs" );
5 function isEmptyObject( obj ) {
6 for ( var name in obj ) {
11 function extend( obj ) {
13 src = [].slice.call( arguments, 1 );
15 Object.keys( src ).forEach(function( key ) {
16 var copy = src[ key ];
18 for ( var prop in copy ) {
19 dest[ prop ] = copy[ prop ];
26 function charSort( obj, callback ) {
32 copied = extend({}, obj );
39 for ( var i in obj ) {
40 if ( obj[ i ] >= largest ) {
49 if ( !isEmptyObject( obj ) ) {
52 ordered.forEach(function( val ) {
53 table[ val ] = copied[ val ];
61 function charFrequency( src, callback ) {
64 src.replace(/[^\w]|\d/gi, "").split("").forEach(function( c ) {
65 obj[ c ] ? ++obj[ c ] : ( obj[ c ] = 1 );
68 return charSort( obj, callback );
72 charFrequency( fs.readFileSync( "dist/jquery.min.js", "utf8" ), function( obj ) {
76 console.log( " " + chr + " " + obj[ chr ] );