美文网首页
Js 如何把数据变成级联结构数据

Js 如何把数据变成级联结构数据

作者: 甘道夫老矣 | 来源:发表于2021-01-07 09:04 被阅读0次

一般情况,我们请求来的数据不是级联结构,但是又要支持级联结构,所以我们必须转换成级联数据才行

这里提下数据结构中级联数据怎么建立
1.名称 name
2.键值 key
3.父级 fatherId (如果有就填父级id,没有就是null)
4.级联路径 path (他是父级+当前级别,ex:0-1-,父级就是0,当前级别就是-,这样目的就是为了上级查询)

//调用,这里我写obj其实目的就是通过不同的键值,调用也可以不同,
//比如你有个数据键值对是gsName,有的可能是aiName,所以 封装了下,可以对其他数据进行编辑
let obj={
        label:"gsName",
        value:"gsSeno",
        fatherId:"gsPaid"
    }
//data是请求来的值
let data= transformTree(data,obj)

//处理级联数据
function transformTree(list, obj) {
    let tree = [];
    for (let i = 0, len = list.length; i < len; i++) {
        if (!list[i][obj.fatherId]) {
            let item = queryChildren(list[i], list, obj);
            item.label = item[obj.label];
            item.value = item[obj.value];
            // item.extra=item;
            tree.push(item);
        }
    }
    return tree;
};
function queryChildren(parent, list, obj) {
    let children = [];
    for (let i = 0, len = list.length; i < len; i++) {
        if (list[i][obj.fatherId] === parent[obj.value]) {
            let item = queryChildren(list[i], list, obj);
            item.label = item[obj.label];
            item.value = item[obj.value];
            // item.extra=item;
            children.push(item);
        }
    }
    if (children.length) {
        parent.children = children;
    }
    return parent;
}

相关文章

网友评论

      本文标题:Js 如何把数据变成级联结构数据

      本文链接:https://www.haomeiwen.com/subject/cobnoktx.html