I had to discern what you’re looking for not only from your question, but also from your comments. It looks like every string begins with 'f'
, and each empty bracket-pair appends an 'o'
. Finally, a non-empty bracket-pair appends its argument.
I actually think this is a cool metaprogramming challenge.
This should work:
let f = (str, depth=0) => str
? `f${'o'.repeat(depth)}${str}` // If given param, terminate
: str => f(str, depth + 1); // If no param, return func
// "fit"
console.log(f('it'));
// "fox"
console.log(f()('x'));
// "fortress"
console.log(f()('rtress'));
// "football"
console.log(f()()('tball'));
// "foooooool!!!"
console.log(f()()()()()()()('l!!!'));
0
solved javascript function rules with multiple parameter braces