小编Fra*_*nck的帖子

在javascript中从平面数组构建树数组

我有一个复杂的json文件,我必须使用javascript来使其分层,以便以后构建一个树.json的每个条目都有:id:唯一id,parentId:父节点的id(如果节点是树的根,则为0)level:树中的深度级别

json数据已经"排序".我的意思是一个条目将在其上方拥有父节点或兄弟节点,并且在其自身下面是子节点或兄弟节点.

输入:

{
    "People": [
        {
            "id": "12",
            "parentId": "0",
            "text": "Man",
            "level": "1",
            "children": null
        },
        {
            "id": "6",
            "parentId": "12",
            "text": "Boy",
            "level": "2",
            "children": null
        },
                {
            "id": "7",
            "parentId": "12",
            "text": "Other",
            "level": "2",
            "children": null
        },
        {
            "id": "9",
            "parentId": "0",
            "text": "Woman",
            "level": "1",
            "children": null
        },
        {
            "id": "11",
            "parentId": "9",
            "text": "Girl",
            "level": "2",
            "children": null
        }
    ],
    "Animals": [
        {
            "id": "5",
            "parentId": "0",
            "text": "Dog",
            "level": "1",
            "children": null …
Run Code Online (Sandbox Code Playgroud)

javascript arrays tree list

110
推荐指数
11
解决办法
11万
查看次数

计算嵌套数组树中的叶子数

我有一个嵌套的数组树,它是由具有以下功能的平面数组生成的:

function convertToTree(array $flat, $idField = 'id',
                        $parentIdField = 'parentId',
                        $childNodesField = 'childNodes') {
    $indexed = array();
    // first pass - get the array indexed by the primary id  
    foreach ($flat as $row) {
        $indexed[$row[$idField]] = $row;
        $indexed[$row[$idField]][$childNodesField] = array();
    }

    //second pass  
    $root = null;
    foreach ($indexed as $id => $row) {
        $indexed[$row[$parentIdField]][$childNodesField][$id] =& $indexed[$id];
        if (!$row[$parentIdField]) {
            $root = $id;
        }

    }
    return array($root => $indexed[$root]);
}
Run Code Online (Sandbox Code Playgroud)

我需要为数组的每个节点添加一个条目“ NUMBER OF LEAVES”。该条目应计算该节点所有子节点的所有叶子:

Array ( 
    [9] => Array ( 
        [id] …
Run Code Online (Sandbox Code Playgroud)

php arrays tree nested

4
推荐指数
2
解决办法
5611
查看次数

如何计算extjs树中节点的叶数?

我有一个在extjs 4.x中生成的树,我需要计算任何节点,即该节点的叶子数.我的意思是叶子的总数,这也意味着该节点的"子节点"的叶子.我看到有一种级联方法,但我无法使用它.

javascript tree extjs cascade nodes

1
推荐指数
1
解决办法
2225
查看次数

标签 统计

tree ×3

arrays ×2

javascript ×2

cascade ×1

extjs ×1

list ×1

nested ×1

nodes ×1

php ×1