关于递归中赋值与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进去,后面再对它操作没问题00
相似问题