5 ms·
If you mean by method-based pattern matching that you evaluate a function for each 'case'. My lib can do that do: const match = require('pmatch-js') co
by mpfundstein 8y ago
If you mean by method-based pattern matching that you evaluate a function for each 'case'. My lib can do that do:
const match = require('pmatch-js')
const _ = require('lodash')
const fizzbuzz = x => match(x)
.when(a => a % 3 == 0 && a % 5 == 0, 'fizzbuzz')
.when(a => a % 5 == 0, 'buzz')
.when(a => a % 3 == 0, 'fizz')
.otherwise(a => a)
console.log(
_.range(1, 101).map(fizzbuzz).join(' ')
)
But maybe you mean something totally different :-)
EDIT: Ah I think I know what you mean. Your lib takes an array of tuples to define the patterns. Sorry for the confusion.
- dkarbayev 8y agoWow, importing the whole lodash to use just one function? There’s es6 way of getting an array with a range of numbers: [...Array(100).keys()].map(v=>v+1) A little bit longer but no dependencies.
- mpfundstein 8y agoPretty cool trick mate. Didn’t know
- fangaorne 8y agoAlthough this method is pretty, I see 4 loops in this small line. a better way would be to only import the range method from lodash like so : import _range from "lodash/range";