console.log(conditionalReduce('dog',{dog:()=>'Dogs are great pets',cat:()=>'Cat\'s are also great'}));// Prints "Dogs are great pets"
I realized, thanks to @john_papa
's post below, that this approach also allows us to return a value in the process, so we can inline it in other expressions (or React's JSX)!
You could also consider having the function conditionalReduce curried and pass the dictionary as the first argument, to make it easier to reuse.
constpetReducer=conditionalReduce({dog:()=>'Dogs are great pets',cat:()=>'Cats are also great'})console.log(petReducer('dog'))// 'Dogs are great pets'console.log(petReducer('cat'))// 'Cats are also great'
Also a great idea. I added a new helper so that folks can do either. Thanks again, this makes things cleaner!
const{curry}=require('conditional-reduce');constdogReducer=curry({dog:()=>'Dogs are great pets',cat:()=>'Cat\'s are also great'});console.log(dogReducer('dog'));// Prints "Dogs are great pets"console.log(dogReducer('bird'));// Throws 'Invalid conditional value "bird"' exception
const{reduce}=require('conditional-reduce');console.log(reduce('dog',{dog:()=>'Dogs are great pets',cat:()=>'Cat\'s are also great'}));// Prints "Dogs are great pets"console.log(reduce('bird',{dog:()=>'Dogs are great pets',cat:()=>'Cat\'s are also great'}));// Throws 'Invalid conditional value "bird"' exception
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I created a little module based on this conversation, and of course gave you a shout-out in the README :D
It's at npmjs.com/package/conditional-reduce
Code looks like this:
I realized, thanks to @john_papa 's post below, that this approach also allows us to return a value in the process, so we can inline it in other expressions (or React's JSX)!
Wow, that went quick :D
You could also consider having the function
conditionalReduce
curried and pass the dictionary as the first argument, to make it easier to reuse.Also a great idea. I added a new helper so that folks can do either. Thanks again, this makes things cleaner!