Fire - Madeline #49
Conversation
beccaelenzil
left a comment
There was a problem hiding this comment.
JS Adagrams
Major Learning Goals/Code Review
| Criteria | yes/no, and optionally any details/lines of code to reference |
|---|---|
Correctly uses variables, and only uses const and let variables. The program prefers const variables. The program never uses var. |
✔️ |
| Practices best-practices in JavaScript syntax. There are semi-colons at the end of most lines that need semi-colons. Variables and functions are named with camelCase. | ✔️ |
| Correctly creates and calls functions within an object with proper syntax (parameters, return statements, etc.) | ✔️ |
| Uses correct syntax for conditional logic and iteration | ✔️ |
| Practices git with at least 3 small commits and meaningful commit messages | ✔️ |
Utilizes unit tests to verify code; tests can run using the command $ npm test test/adagrams.test.js and we see test successes and/or failures |
✔️ |
Functional Requirements
| Functional Requirement | yes/no |
|---|---|
For the drawLetters function, there is an appropriate data structure to store the letter distribution. (You are more likely to draw an 'E' than an 'X'.) |
See in-line comment |
Utilizes unit tests to verify code; all tests for drawLetters and usesAvailableLetters pass |
✔️ |
Utilizes unit tests to verify code; all tests for scoreWord pass |
✔️ |
Utilizes unit tests to verify code; all tests for highestScoreFrom pass |
✔️ Not required |
Overall Feedback
Great work on this project! In this project you’ve taken some interesting logic and worked it into JavaScript syntax. Your code is clear and readable. Take a look at the in-line comments for some suggestions on how to DRY up you code. Keep up the hard work!
| Overall Feedback | Criteria | yes/no |
|---|---|---|
| Green (Meets/Exceeds Standards) | 5+ in Code Review && 3+ in Functional Requirements | ✔️ |
Code Style Bonus Awards
Was the code particularly impressive in code style for any of these reasons (or more...?)
| Quality | Yes? |
|---|---|
| Perfect Indentation | ✅ |
| Elegant/Clever | ✅ |
| Descriptive/Readable | ✅ |
| Logical/Organized | ✅ |
| @@ -1,6 +1,139 @@ | |||
| const Adagrams = { | |||
| lettersDistribution: [ | |||
There was a problem hiding this comment.
This data structure works, but it's not very DRY and would be tricky to change. For example, suppose I said you had the wrong number of "I"s - you would have to do a lot of counting to solve the problem.
Instead you might store a hash of letter frequencies like this
letterQuantities: {
A: 9, B: 2, ...
}
|
|
||
| wordByLetter.forEach(letter => { | ||
| switch (letter) { | ||
| case 'A': |
There was a problem hiding this comment.
Consider how storing the score for each letter in an object with the letter as the key, and the score as a value could DRY up this code.
| return this.lettersDistribution.slice(0, 10); | ||
| }, | ||
|
|
||
| usesAvailableLetters(input, lettersInHand) { |
There was a problem hiding this comment.
Good work working through this logic.
Assignment Submission: JS Adagrams
Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions.
Reflection