DEV Community

Discussion on: The Scrabbling String Problem

Collapse
pengeszikra profile image
Peter Vivo

Nice, but functional thinking maybe give shorter result:

My first try

[..."hellwallelalheulselo"].filter(c => "hello".includes(c))
// result: ["h", "e", "l", "l", "l", "l", "e", "l", "l", "h", "e", "l", "e", "l", "o"]

lead to me loop wordToBeFound instead of lettersInHand

const canScrabbleString = (lettersInHand, wordToBeFound) => -1 < 
  [...wordToBeFound]
    .reduce( (cursor, chr) => lettersInHand.indexOf(chr, cursor), 0);
Collapse
jcsh profile image
Justin Ho Author • Edited

Thanks for comment Peter!

Yes I did not believe my solution was the most elegant one so I'm glad you provided a functional one!

I'll have to familiarize myself more with higher order functions.

Collapse
pengeszikra profile image
Peter Vivo

funfunfunction reduce the swish knife of coding.