为了账号安全,请及时绑定邮箱和手机立即绑定

js如何实现指定深度的嵌套方法

js如何实现指定深度的嵌套方法

大话西游666 2018-11-14 13:13:01
今天遇见一个面试题,用js实现算法时发现一个问题,如何用js实现这样一个方法,给定一个函数和嵌套深度(int类型),返回如下所示的一个嵌套的结构?给定参数:fn,deepLength返回结构(以deepLength=3为例):  for (var x = 0; x <= 9; x++) {    for (var y = 0; y <= 9; y++) {      for (var z = 0; z <= 9; z++) {        rs = fn([x,y,z])      }    }  }想了一阵,感觉好像只能通过嵌套函数实现,是否有比较优雅的实现方法呢?总结了一下大家的方法,放到了一个demo页面里,供大家参考附带链接 面试题:分饼干
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

function loop(fn, n, args = []) {

  if (n === 0) {

    fn.apply(null, args);

    return;

  }


  for (let i = 0; i <= 9; i++) {

    loop(fn, n - 1, args.concat(i));

  }

}



loop((...args) => {

  console.log(args);

}, 3);


查看完整回答
反对 回复 2018-12-07
  • 1 回答
  • 0 关注
  • 648 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号