嵌套数组生成器题解

题目链接

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
 */
相关推荐
2401_884563241 小时前
高性能日志库C++实现
开发语言·c++·算法
Dxy12393102161 小时前
DrissionPage使用js点击:突破常规交互限制的“隐形手”
开发语言·javascript·交互
handler011 小时前
基础算法:BFS
开发语言·数据结构·c++·学习·算法·宽度优先
2401_879503412 小时前
C++中的状态模式实战
开发语言·c++·算法
@PHARAOH2 小时前
HOW - Go 开发入门(四)- ORM 对象关系映射
开发语言·后端·golang
Aawy1202 小时前
自定义字面量实战
开发语言·c++·算法
Red丶哞2 小时前
RustFS 使用 S3 Python SDK(Boto3)文档
开发语言·python
轩情吖2 小时前
MySQL之表的增删查改
android·开发语言·c++·后端·mysql·adb·
北寻北爱2 小时前
面试题-js篇
前端·javascript