有如下企业部门数据
* [
{
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));
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
很明显你的需求需要使用递归的思想,将子数据都给递归遍历出来,就像下面的一样
具体的问题描述能不能清楚一点,是要我们来猜测你的想法么?
递归是我的噩梦