javascript - js如何实现指定深度的嵌套方法
本文介绍了javascript - js如何实现指定深度的嵌套方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
今天遇见一个面试题,用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页面里,供大家参考
附带链接 面试题:分饼干
解决方案
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);
这篇关于javascript - js如何实现指定深度的嵌套方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文