// this file includes code for the letter count // array of all lowercase letters var letters = "abcdefghijklmnopqrstuvwxyz".split(""); /* * try this out in the console! you can access any variable or function * defined globally in the console * * and, you can right-click output in the console to make it global too! */ /* * removes any character (including spaces) that is not a letter * and converts all remaining letters to lowercase */ var onlyLetters = function(text) { // there are multiple ways to define a function in javascript! // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp var notLetter = /[^a-z]/g; return text.toLowerCase().replace(notLetter, ""); }; // in console try: onlyLetters("hello world!"); /* * counts all of the letters in the input text and stores the counts as * a d3 map object * https://github.com/d3/d3-collection/blob/master/README.md#map */ var countLetters = function(input) { var text = onlyLetters(input); var count = d3.map(); /* * you can loop through strings as if they are arrays * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for */ for (var i = 0; i < text.length; i++) { var letter = text[i]; // check if we have seen this letter before if (count.has(letter)) { count.set(letter, count.get(letter) + 1); } else { count.set(letter, 1); } } return count; }; // in console try: countLetters("hello world!"); /* result Fe $d: 1 $e: 1 $h: 1 $l: 3 $o: 2 $r: 1 $w: 1 */ // in console try: countLetters("hello world!").keys(); result = ["h", "e", "l", "o", "w", "r", "d"] // in console try: countLetters("hello world!").entries(); /* result => entries = {key: value} pair, here we got 7 object, each object inside contain key-value pair console output = [Object, Object, Object, Object, Object, Object, Object] Object |_ key: "h" |_ value: 1 */