Skip to content

树溯源对象

js
treeTrace(tree, id, [options])

根据主键的值从树中溯源,返回从根到自身顺序的对象数组,如:[object1, object12, object121]

参数

参数类型默认说明
treearray树状结构数据
idany主键的值,如:chartProjectMyTwo
optionsobject配置选项

返回

参数类型说明
*array从根到自身顺序溯源的对象数组

示例

js
import { treeTrace } from '@axolo/tree-array'

const tree = [{
  id: 'home',
  path: '/home',
  parentId: null
}, {
  id: 'chart',
  path: '/chart',
  parentId: null,
  children: [{
    id: 'chartIndex',
    path: '/chart/index',
    parentId: 'chart',
    children: [{
      id: 'chartIndexTop',
      path: '/chart/index/top',
      parentId: 'chartIndex'
    }, {
      id: 'chartIndexActive',
      path: '/chart/index/active',
      parentId: 'chartIndex',
      children: [{
        id: 'chartIndexActiveMy',
        path: '/chart/index/active/my',
        parentId: 'chartIndexActive'
      }]
    }]
  }, {
    id: 'chartReview',
    path: '/chart/review',
    parentId: 'chart'
  }, {
    id: 'chartProject',
    path: '/chart/project',
    parentId: 'chart',
    children: [{
      id: 'chartProjectYou',
      path: '/chart/project/you',
      parentId: 'chartProject',
      test: true
    }, {
      id: 'chartProjectMy',
      path: '/chart/project/my',
      parentId: 'chartProject',
      children: [{
        id: 'chartProjectMyOne',
        path: '/chart/project/my/one',
        parentId: 'chartProjectMy'
      }, {
        id: 'chartProjectMyTwo',
        path: '/chart/project/my/two',
        parentId: 'chartProjectMy'
      }]
    }]
  }]
}, {
  id: 'smile',
  path: '/smile',
  parentId: null,
  children: [{
    id: 'smileIndex',
    path: '/smile/index',
    parentId: 'smile',
    test: true
  }]
}]

treeTrace(tree, 'chartProjectMyTwo') // array of id
json
[
  {
    "id": "chart",
    "path": "/chart",
    "parentId": null,
    "children": null
  },
  {
    "id": "chartProject",
    "path": "/chart/project",
    "parentId": "chart",
    "children": null
  },
  {
    "id": "chartProjectMy",
    "path": "/chart/project/my",
    "parentId": "chartProject",
    "children": null
  },
  {
    "id": "chartProjectMyTwo",
    "path": "/chart/project/my/two",
    "parentId": "chartProjectMy",
    "children": null
  }
]

@axolo/tree-array