var text =
'And this is Dorlcote Mill. I must '
+ 'stand a minute or two here on the bridge '
+ 'and look at it, though the clouds are '
+ 'threatening, and it is far on in the afternoon. '
+ 'Even in this leafless time of departing February '
+ 'it is pleasant to look at,–perhaps the chill, '
+ 'damp season adds a charm to the trimly kept, '
+ 'comfortable dwelling-house, as old as the elms '
+ 'and chestnuts that shelter it from the '
+ 'northern blast. ';
var text_analyzer = {
current_text : text,
get_words_array : function() {
var text = this.current_text;
var split_text = text.split(' ');
return split_text;
},
count_words : function() {
var words_array = this.get_words_array();
var length = words_array.length;
return length;
},
get_average_word_length : function() {
var all_word_lengths = 0;
var words_array = this.get_words_array();
for(var i in words_array) {
var current_word = words_array[i];
all_word_lengths = all_word_lengths +
current_word.length;
}
return all_word_lengths / words_array.length;
},
get_longest_word : function() {
var longest_length_seen_so_far = 0;
var longest_word = '';
var words_array = this.get_words_array();
for(var i in words_array) {
var current_word = words_array[i];
if(current_word.length >
longest_length_seen_so_far) {
longest_word = current_word;
longest_length_seen_so_far =
current_word.length;
}
}
return longest_word;
},
get_word_frequencies : function() {
var words_array = this.get_words_array();
var word_frequencies = {};
for(var i in words_array) {
var current_word = words_array[i];
if(! (current_word in word_frequencies)) {
word_frequencies[current_word] = 1;
}
else {
var previous_frequency =
word_frequencies[current_word];
var new_frequency = previous_frequency
+ 1;
word_frequencies[current_word] =
new_frequency;
}
}
return word_frequencies;
},
};
function print_object(the_object) {
document.write('{
');
for(var i in the_object) {
var key = i;
var value = the_object[i];
document.write('"' + key + '"');
document.write(' : ');
if(Array.isArray(value)) {
print_array(value);
}
else if(typeof value === 'object') {
print_object(value);
}
else {
document.write(value);
}
document.write('
');
}
document.write('}
');
}
function print_array(the_array) {
document.write('[
');
for(var i in the_array) {
var value = the_array[i];
if(Array.isArray(value)) {
print_array(value);
}
else if(typeof value === 'object') {
print_object(value);
}
else {
document.write(value + ',');
}
}
document.write(']
');
}
document.write(text_analyzer.get_word_frequencies()['on']);
Chapter 12 “Program” starting code:
