listtoTree

function arrayToTree(data, nodesField, idField, parentIdField) {

    if (!nodesField) nodesField = 'children';
    idField = idField || '_id';
    parentIdField = parentIdField || '_pid';

    var nodes = [];


    var idHash = {};
    for (var i = 0, l = data.length; i < l; i++) {
        var o = data[i];
        if (!o) continue;
        var id = o[idField];
        if (id !== null && id !== undefined) {
            idHash[id] = o;
        }
        delete o[nodesField];
    }


    for (var i = 0, l = data.length; i < l; i++) {
        var o = data[i];
        var p = idHash[o[parentIdField]];
        if (!p) {
            nodes.push(o);
            continue;
        }
        if (!p[nodesField]) {
            p[nodesField] = [];
        }
        p[nodesField].push(o);
    }
    return nodes;
}

猜你喜欢

转载自www.cnblogs.com/romayn/p/11288045.html
今日推荐