
"Introducing functional programming with Underscore.js"--Cover.
The other one for me was when I started reading OSS codebases on Github. Meaning, if I needed to use a library, I would read the source first. That brought me a lot of confidence and allowed me to see how others put things together.
Another helpful one is Functional Javascript. It showed me a new, better, way to write my JS code.
I found it can be easier on your mind when you pick it up almost like vim. First you learn how to move around with hjkl (perhaps a functional equivalent is using .map() and .filter() instead of for loops), then you navigate by lexical concepts with w, e, $, %, etc (maybe using .zip()), then build macros with @ (currying), etc. Each step you learn and use regularly helps when stretching your brain to pick up more. You definitely don't need to rewrite everything in a functional way to take advantage of it.
Personally, I feel the best way to learn is by experience and by exposure. By seeing similar code in different contexts, you can learn why React programs tend to rely on certain patterns. To that end, working through something like How To Design Worlds (http://world.cs.brown.edu/1/) or the Elm guide (https://guide.elm-lang.org/) will give you points of comparison that will help you better articulate what you decide to do in React.
1. JavaScript the good parts - because classic
2. You don't know JS series - because depth
3. Functional JavaScript - because underscore
Then you're done. Go find a Node or front end framework tutorial and blast off from there. Build build build.
I know that JS isn't the same thing as Clojure but the ideas in this book work with really any language. After reading this book I'm a better Python programmer.
"Functional JavaScript: Introducing Functional Programming with Underscore.js"
"Professional JavaScript for Web Developers"
[edited to add more books]