不来个迭代版试试?

来源:8-5 【连环问】手写一个JS函数,实现数组深度扁平化

Charles_So_网页开发

2022-04-15

感觉递归太简单了,面试官可能想要来个迭代版的。

写回答

2回答

双越

2022-04-15

所有的递归都可以通过 栈或队列 来写出迭代的版本,后面课程有讲,可以参考。

0
1
weixin_宝慕林8180759
自己写了一下,类似于使用非递归实现深度优先遍历 function arrayFlatten(array) { const stack = [ { array, index: 0, }, ]; const copiedArray = []; while (stack.length !== 0) { const top = stack[stack.length - 1]; if (top.array.length < top.index + 1) { stack.pop(); continue; } const element = top.array[top.index]; if (Array.isArray(element)) { stack.push({ array: element, index: 0, }); top.index++; continue; } copiedArray.push(element); top.index++; } return copiedArray; }
2022-05-20
共1条回复

hymanzhan

2022-04-15

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat#use_a_stack

0
0

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1509 学习 · 642 问题

查看课程