Skip to content

Earth - Denise - JS Adagrams#44

Open
dnsrocha wants to merge 11 commits into
Ada-C14:masterfrom
dnsrocha:master
Open

Earth - Denise - JS Adagrams#44
dnsrocha wants to merge 11 commits into
Ada-C14:masterfrom
dnsrocha:master

Conversation

@dnsrocha

@dnsrocha dnsrocha commented Dec 14, 2020

Copy link
Copy Markdown

Assignment Submission: JS Adagrams

Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions.

Reflection

Prompt Response
What patterns were you able to use from your Ruby knowledge to apply to JavaScript? Loops, nesting, methods/functions
Did you need to use different strategies to find information online about JavaScript than you would for Ruby? Yes, different doc site. It is still a little confusing because some of the information available seems way ahead of what we've covered so far in class (and the names are different), but also there is A LOT of info available for JS.
What was something you needed to do independent research on for this project? What did you learn? I learned how slice, sample and randomization works in JS;
What was a challenge you were able to overcome on this assignment? Synthax; JS has a lot of details that are different from Ruby (like parenthesis being mandatory for if statements) that I still sometimes write wrong at first - thankfully eslint won't let me get away with errors :) ;
What has been interesting and positive about learning a new programming language? It is amazing to see how each language has its own particularities and how each one is a great fit for different necessities;
What is something to focus on your learnings in JavaScript in the next week? Understanding Classes in JS.

Comment thread src/adagrams.js
Comment on lines +12 to +13
let randIndex = Math.floor(Math.random() * letterPool.length);
let randLetter = letterPool.slice(randIndex, randIndex + 1);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can change these to const because the variables itself if being assigned once EVERY iteration. This means it's not being re-assigned.

Comment thread src/adagrams.js
for(const letter of input) {
if (tally[letter] && tally[letter] > 0) {
tally[letter] -= 1;
let handCopy = Array.from(lettersInHand);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here.... this can be const. Arrays and objects remain arrays and objects even when we add keys or values to them.

Comment thread src/adagrams.js
Comment on lines +57 to +65
let maxScore = Math.max(...words.map(word => this.scoreWord(word))); // find the maximum score from all the words
let highScoreArr = words.filter(word => this.scoreWord(word) === maxScore); // find the words that has the maximum score

if (highScoreArray.length > 1) {
bestWord = this.tieBreaker(highScoreArray);
} else {
bestWord = highScoreArray[0];
};
if (highScoreArr.length === 1) {
return {word: highScoreArr[0], score: maxScore};
}

return bestWord;
let minLength = Math.min(...highScoreArr.map(word => word.length == 10 ? 0 : word.length));
let shortestWords = highScoreArr.filter(word => (word.length == 10 ? 0 : word.length) === minLength);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these variables can be const as well

@spitsfire spitsfire left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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. ✔️ Couple of variables could be changed to const. See comments for details
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'.) ✔️
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 ✔️

Overall Feedback

Overall Feedback Criteria yes/no
Green (Meets/Exceeds Standards) 5+ in Code Review && 3+ in Functional Requirements ✔️
Yellow (Approaches Standards) 4+ in Code Review && 2+ in Functional Requirements, or the instructor judges that this project needs special attention
Red (Not at Standard) 0-3 in Code Review or 0,1 in Functional Reqs, or assignment is breaking/doesn’t run with less than 5 minutes of debugging, or the instructor judges that this project needs special attention

Code Style Bonus Awards

Was the code particularly impressive in code style for any of these reasons (or more...?)

Quality Yes?
Perfect Indentation
Descriptive/Readable
Logical/Organized

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants