Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(m4): add solution exe-004 letter-frequencies #3546

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions projects/m4/004-letter-frequencies/js/exercise1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Line 1: This is the first line.
Line 2: This is the second line.
Line 3: This is the third line.
Line 4: This is the fourth line.
Line 5: This is the fifth line.
Line 6: This is the sixth line.
Line 7: This is the seventh line.
Line 8: This is the eighth line.
Line 9: This is the ninth line.
Line 10: This is the tenth line.
Line 11: This is the eleventh line.
Line 12: This is the twelfth line.
Line 13: This is the thirteenth line.
Line 14: This is the fourteenth line.
Line 15: This is the fifteenth line.
Line 16: This is the sixteenth line.
Line 17: This is the seventeenth line.
Line 18: This is the eighteenth line.
Line 19: This is the nineteenth line.
Line 20: This is the twentieth line.
Line 21: This is the twenty-first line.
Line 22: This is the twenty-second line.
Line 23: This is the twenty-third line.
Line 24: This is the twenty-fourth line.
25 changes: 25 additions & 0 deletions projects/m4/004-letter-frequencies/js/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const { error } = require('console');
const { readFile } = require('fs/promises');

let filePath = './exercise1.txt';

readFile(filePath)
.then((data) => {
// Convert the string to an array replacing all characters that are not letters
let data1 = data
.toString()
.replace(/[0-9.,\/#!$%\^&\*;:{}=\-_`~(),' ', \r\n]/g, '')
.split('');

const count = {}; // It allows us to calculate the number of times a character in the file repeats or appears

data1.forEach((value) => {
const arr = count[value] ?? 0; // Nulling coalescing operator to start with 0 if count[value] is undefined or null
count[value] = arr + 1;
});

console.log(count);
})
.catch((error) => {
console.error('The program is unable to open the file you indicated');
});