关于递归中赋值与push的先后问题

来源:7-4 分类表格显示优化

欧阳乔治

2022-04-03

public static array2Tree (array: any, parentId: number) {
        if (Tool.isEmpty(array)) {
            return [];
        }

        const result = [];
        for (let i = 0; i < array.length; i++) {
            const c = array[i];
            // console.log(Number(c.parent), Number(parentId));
            if (Number(c.parent) === Number(parentId)) {
                result.push(c);

                // 递归查看当前节点对应的子节点
                const children = Tool.array2Tree(array, c.id);
                if (Tool.isNotEmpty(children)) {
                    c.children = children;
                }
            }
        }
        return result;
    }

这里递归的过程中为什么不是先把children赋值到c变量上再push到数组?先push再赋值为什么也可以的?

写回答

1回答

甲蛙

2022-04-04

就类似于C语言的指针,或Java里的对象引用。先push进去,后面再对它操作没问题
下载视频          
0
0

Spring Boot+Vue3前后端分离,实战wiki知识库系统

一课掌握前后端最火框架,更有职场竞争力

2524 学习 · 1671 问题

查看课程