在javascript中创建分层树

塔努吉·纳格帕尔

我有一个像这样的平面数组,其中包含带有 id 和值的数据对象。每个 id 都是唯一的

var data = [{
        id: 1,
        value: 'as',
        parent: 2
    }, {
        id: 2,
        value: 'sasa',
        parent: 3
    }, {
        id: 3,
        value: 'sasa',
        parent: 
    }]

如何在 JavaScript 中创建类似于“对象”而不是数组的分层树,因为我还想访问对象的元素,例如 3.2.value

{
        id: 3,
        value: 'sasa',
        parent: '',
        2: {
            id: 2,
            value: 'sasa',
            parent: 3,
            1: {
                id: 1,
                value: 'as',
                parent: 2
            }
        }
    }
尼娜·舒尔茨

您可以通过使用对象来收集和创建对象idparent同时保持它们的关系来采用迭代方法

最后返回以根为父的属性。

结果略有不同,因为您希望使用它们id作为访问器来寻址节点

var data = [{ id: 1, value: 'as', parent: 2 }, { id: 2, value: 'sasa', parent: 3 }, { id: 3, value: 'sasa', parent: '' }],
    tree = function (data, root) {
        return data.reduce(function (r, o) {
            Object.assign(r[o.id] = r[o.id] || {}, o);
            r[o.parent] = r[o.parent] || {};
            r[o.parent][o.id] = r[o.id];
            return r;
        }, Object.create(null))[root];
    }(data, '');

console.log(tree);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以在STS中创建配置集的分层树?

来自分类Dev

在Spark中创建分层JSON

来自分类Dev

在 Django 中创建分层 url

来自分类Dev

JavaScript中的分层聚类

来自分类Dev

用Javascript对动态创建的画布进行分层

来自分类Dev

遍历引用Java中父节点的分层列表/树

来自分类Dev

在Java中遍历引用父节点的分层列表/树

来自分类Dev

分层查询,帐户树

来自分类Dev

如何从熊猫中的行创建分层json?

来自分类Dev

在Swift 4中创建嵌套的分层导航

来自分类Dev

用于树创建的Javascript递归

来自分类Dev

JavaScript中的树遍历

来自分类Dev

在javascript中打印分层树结构

来自分类Dev

是否可以在JavaScript中对声音进行分层?

来自分类Dev

以分层方式在 JavaScript 中构建数据

来自分类Dev

在golang中创建后缀树

来自分类Dev

给定一个 (parent,child) 的平面列表,创建一个分层字典树

来自分类Dev

打印分层树的编号轮廓

来自分类Dev

从python中的字典列表创建分层json转储

来自分类Dev

如何在iPad App中创建非分层导航

来自分类Dev

如何使用qmake在C ++中创建分层项目结构

来自分类Dev

如何在python中从多个图像创建psd分层文件

来自分类Dev

如何在iPad App中创建非分层导航

来自分类Dev

使用C#中的闭包创建分层数据?

来自分类Dev

如何从分层分组的数据框中创建构面图

来自分类Dev

如何在 django 应用程序中创建分层 url?

来自分类Dev

c# Winforms 中的分层树视图与大陆、国家、城市

来自分类Dev

使用包含循环的嵌套 Promises 在 JavaScript 中创建一棵树

来自分类Dev

如何在纯 JavaScript 中创建带有复选框的可折叠树视图