【问题标题】:Build tree from Array javascript with parent id inside brackets从带有括号内的父 ID 的 Array javascript 构建树
【发布时间】:2020-08-26 20:32:36
【问题描述】:

现在,在您将此问题标记为重复之前,请听我说完。

我在 reactjs 中有一个类似的 json 响应

organisationUnits: [
  {
     name: "0.Mzondo",
     id: "nW4j6JDVFGn",
     parent: {
       id: "Ppx2evDIOFG"
     }
 },
 {
   name: "1 Chipho",
   id: "eE4p4gXpR4p",
   parent: {
     id: "JKNTgsOVMOo"
   }
 }, {}, {}, ....
  
}]

现在我已经在网上搜索了一个列表到树的解决方案,我有很多来自人们的代码,但它似乎不起作用。 我也试过https://github.com/yi-ge/js-tree-listhttps://www.npmjs.com/package/list-to-tree还有https://www.npmjs.com/package/array-to-tree

但没有任何效果,我认为是因为我的父 ID 被困在括号中。所以没有任何在线工作。如果有人对此有解决方案,将不胜感激。

【问题讨论】:

  • 为什么在使用这些库之前不将 parent.id 更改为 parent
  • 您是否考虑过自己为此编写一个函数?我不认为它会花费这么多的努力。
  • @evgenifotia 我真的很抱歉我很笨......这么简单的想法,你节省了我的时间......非常感谢你

标签: javascript arrays json reactjs tree


【解决方案1】:

好吧,对于那些将来可能会遇到困难的人来说,这就是我解决问题的方法。

令人惊讶的是我不是很聪明,所以选择了错误的职业......在这里

var arrayToTree = require('array-to-tree');

var array = [
  {
     name: "0.Mzondo",
     id: "nW4j6JDVFGn",
     parent: {
       id: "Ppx2evDIOFG"
     }
 },
 {
   name: "1 Chipho",
   id: "eE4p4gXpR4p",
   parent: {
     id: "JKNTgsOVMOo"
   }
 }, {}, {}, ....
  
} 

array.map((item) => {
                    //

                    if(item.parent != null){
                        //console.log(item.parent.id)
                        item.parent = item.parent.id
                    } else {
                        item.parent = undefined
                    }
                });

                var tree = arrayToTree(array, {
                    parentProperty: 'parent',
                    customID: 'id'
                });

                console.log( tree );

                this.setState({
                    orgUnits : tree
                });

完成。 非常感谢所有帮助过的人。真的很喜欢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2022-06-30
    • 2020-08-27
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多