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!!!'));
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…