let _ = require("lodash")
const match = function (reg, str) {
return str.match(reg)
}
console.log(match(/\s+/g, "Hello World"))
const matchCurry = function (reg) {
return function (str) {
return str.match(reg)
}
}
const haveSpace = matchCurry(/\s+/g)
const haveNumber = matchCurry(/\d+/g)
console.log(haveSpace("Hello World"))
console.log(haveNumber("Hello 2 World"))
const matchCurryByLodash = _.curry(function (reg, str) {
return str.match(reg)
})
const haveSpaceByLodash = matchCurryByLodash(/\s+/g)
const haveNumberByLodash = matchCurryByLodash(/\d+/g)
console.log(haveSpaceByLodash("Hello World"))
console.log(haveNumberByLodash("Hello 2 World"))
const filter = _.curry(function (fn, array) {
return array.filter(fn)
})
const findSpace = filter(haveSpace)
const findSpaceByLodash = filter(haveSpaceByLodash)
console.log(findSpace(['John Conner', 'Jogn_Donne']))
console.log(findSpaceByLodash(['John Conner', 'Jogn_Donne']))
const matchByes6 = reg => (str) => str.match(reg)
const filterLodashByEs6 = _.curry((fn) => (array) => array.filter(fn))
const haveSpaceByEs6 = matchByes6(/\s+/g)
const haveNumberByEs6 = matchByes6(/\d+/g)
const findSpaceByEs6 = filterLodashByEs6(haveSpaceByEs6)
console.log(haveSpaceByEs6("Hello World"))
console.log(haveNumberByEs6("Hello 2 World"))
console.log(findSpaceByEs6(['John Conner', 'Jogn_Donne']))