嵌套数组生成器题解

题目链接

2649. 嵌套数组生成器 - 力扣(LeetCode)

思路

首先要知道什么是 generator 函数,是 ES 6 引入的一种特殊函数,可以暂停执行和恢复执行

基本语法就是 使用 function* 并且使用 yield 字段 yield 字段可以委托给 另外一个 generator 函数

yield 字段代表 暂停 yield* 代表 委托

代码

javascript 复制代码
/**
 * @param {Array} arr
 * @return {Generator}
 */
var inorderTraversal = function* (arr) {

    for (const item of arr) {
        if (Array.isArray(item)) {
            yield* inorderTraversal(item)
        }
        else {
            yield item
        }
    }
};

/**
 * const gen = inorderTraversal([1, [2, 3]]);
 * gen.next().value; // 1
 * gen.next().value; // 2
 * gen.next().value; // 3
 */
相关推荐
To_OC26 分钟前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode
To_OC35 分钟前
LC 208 实现 Trie 前缀树:曾被名字劝退,写完发现是送分题
javascript·算法·leetcode
天渺工作室1 小时前
实现一个adblock/adblock plus等浏览器广告拦截器检测插件
前端·javascript
kyriewen9 小时前
2026 年了,还在用 Node.js?Bun 迁移实战:20 分钟搞定,附踩坑记录
前端·javascript·node.js
minglie15 小时前
一个置换问题
javascript
默_笙15 小时前
🌀 别再手动写 Prompt 了!我让 AI 自己循环改到满意为止
javascript
To_OC1 天前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
To_OC1 天前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
labixiong1 天前
实现一个能跑的迷你版Promise(一)
前端·javascript·面试
weedsfly2 天前
还在用 Axios?你可能需要重新理解 XHR 与 Fetch
前端·javascript·面试