lgwebdream / FE-Interview

🔥🔥🔥 前端面试,独有前端面试题详解,前端面试刷题必备,1000+前端面试真题,Html、Css、JavaScript、Vue、React、Node、TypeScript、Webpack、算法、网络与安全、浏览器
https://lgwebdream.github.io/FE-Interview/
Other
6.82k stars 896 forks source link

Day239:按要求实现 go 函数 #1058

Open Genzhen opened 3 years ago

Genzhen commented 3 years ago
// 示例
go("l"); //gol
go()("l"); //gool
go()()()("l"); //返回gooool

每日一题会在下午四点在交流群集中讨论,五点小程序中更新答案 欢迎大家在下方发表自己的优质见解 二维码加载失败可点击 小程序二维码

扫描下方二维码,收藏关注,及时获取答案以及详细解析,同时可解锁800+道前端面试题。

qzruncode commented 3 years ago
function go(str='') {
  const name = 'g';
  let s = '';
  const f = (str='') => {
    if(str !== '') {
      s += 'ol';
      return name + s;
    }else {
      s += 'o';
    }
    return f;
  }
  return f(str);
}

console.assert(go("l") === 'gol', 'no');
console.assert(go()("l") === 'gool', 'no');
console.assert(go()()()("l") === 'gooool', 'no');
yoyooyooo commented 3 years ago
function go(end, i = 0) {
  if (typeof end !== "undefined") {
    return `go${"o".repeat(i)}${end}`;
  } else {
    return function (end) {
      return go(end, i + 1);
    };
  }
}
luuman commented 2 years ago
function go(end, i = 0){
    if (end) return `go${"o".repeat(i)}${end}`
    return function(end){
        return go(end, i + 1)
    }
}
console.log(go("l")); //gol
console.log(go()("l")); //gool
console.log(go()()()("l")); //返回gooool