Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
@Aaron You should up-vote this answer, possibly accept it (after a while) and check out codereview.meta.stackexchange.com/a/73/12407 (This site works slightly differently than SO).
Teeny-tiny style point: when an arrow function takes exactly one argument, the parenthesis are optional; i.e., .map((key) => object[key]) can be written .map(key => object[key]) which some people find more readable.
Somewhat trivial, but since I think documentation is important: occurrence, occurring take two 2 rs. As a matter of habit, spelling matters. I work in a trilingual office, and I can't tell you the number of times we've missed parts of a length refactoring because half of us write it phonetically (in our accent) as lenght.
Many references I've encountered explaining trap tend to show them at the end of a script. I did not realize they were only registered when they were encountered (though, saying that aloud I do feel rather inane). Useful information!