有没有人会这个 ,用js实现

有如下企业部门数据

* [
{
  id: 1,
  name: '部门A',
  children: [{
    name: '部门A',
    children: [...]
  }, ...]
}]
*/

实现一个mock数据生成函数,max表示最大支持的嵌套层级,每个部门拥有的子节点数随机生成
function mockSourceData(max) {

}

在指定的部门节点添加一个子部门数据data
function appendChild(pid, data) {

}

你题目的解答代码如下:

var id = 1;
function mockSourceData(max) {
    var arr = [];
    var n = Math.floor(Math.random()*3)+1;
    for (var i = 0; i < n; i++) {
        var obj = {
            id: id,
            name: '部门'+id
        };
        id++;
        if (max>1)
            obj.children = mockSourceData(max-1);
        arr.push(obj);
    }
    return arr;
}
var mock = mockSourceData(3);
console.log(JSON.stringify(mock,null,4));

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

很明显你的需求需要使用递归的思想,将子数据都给递归遍历出来,就像下面的一样

img

具体的问题描述能不能清楚一点,是要我们来猜测你的想法么?

递归是我的噩梦