阅读背景:

我的For()循环没有完成所有元素JS

来源:互联网 
[
    { 
        task : { id : 1,    id_parent : "",     , is_parent : true      } 
    },
    { 
        task : { id : 2,    id_parent : "",     , is_parent : true      } 
    },
    { 
        task : { id : 3,    id_parent : "1",    , is_parent : false     } 
    },
    { 
        task : { id : 4,    id_parent : "2",    , is_parent : false     } 
    },
    { 
        task : { id : 5,    id_parent : "1",    , is_parent : false     } 
    },
    { 
        task : { id : 6,    id_parent : "1",    , is_parent : true      } 
    },
    { 
        task : { id : 7,    id_parent : "2",    , is_parent : false     } 
    },
    { 
        task : { id : 8,    id_parent : "2",    , is_parent : true      } 
    },
    { 
        task : { id : 9,    id_parent : "1",    , is_parent : true      } 
    },
    { 
        task : { id : 10, id_parent : "9",  , is_parent : false     } 
    },
    { 
        task : { id : 11, id_parent : "9",  , is_parent : false     } 
    },
    { 
        task : { id : 12, id_parent : "8",  , is_parent : true      } 
    },
    { 
        task : { id : 13, id_parent : "2",  , is_parent : false     } 
    },
    { 
        task : { id : 14, id_parent : "6",  , is_parent : true      } 
    },
    { 
        task : { id : 15, id_parent : "12", , is_parent : true      } 
    },
    { 
        task : { id : 16, id_parent : "15",     , is_parent : false     } 
    },
    { 
        task : { id : 17, id_parent : "8",  , is_parent : false     } 
    },
    { 
        task : { id : 18, id_parent : "15",     , is_parent : false     } 
    }
]    
// return direct child of the id_task
    // where this direct child is a prent
    this.getDirectChildParent = function(id_task, array_tasks){
        var tasks = array_tasks;
        if (array_tasks === undefined) {
            tasks = this.getAllTasks();
        }
        var allChildParent = [];
        for (var i = 0; i < tasks.length; i++) {
            var task = tasks[i].task;
            if(task.is_parent && task.id_parent == id_task) allChildParent.push(task.id);
        }
        return allChildParent;
    }

    // return direct child of the id_task
    // where this direct child is not a prent
    this.getDirectNotParentChild = function(id_task, array_tasks){
        var tasks = array_tasks;
        if (array_tasks === undefined) {
            tasks = this.getAllTasks();
        }
        var allDirectChild = [];
        for (var i = 0; i < tasks.length; i++) {
            var task = tasks[i].task;
            if(!task.is_parent && task.id_parent == id_task) {
                allDirectChild.push(task.id);
                /*tasks.splice(i, 1);
                i--;*/
            }
        }
        return allDirectChild;
    }
this.getAllChilderenTask = function(id_task, array_tasks){
        var id_child = [];
        var tasks = array_tasks;

        if (array_tasks === undefined) {
            tasks = this.getAllTasks();
        }

        id_child = id_child.concat(this.getDirectNotParentChild (id_task, tasks));
        id_child_parent = this.getDirectChildParent (id_task, tasks);
        id_child = id_child.concat(id_child_parent);

        if(id_child_parent.length != 0){
            for (var i = 0; i < id_child_parent.length; i++) {
                id_child = id_child.concat( this.getAllChilderenTask (id_child_parent[i], tasks) );
            }
        }

        return id_child;
    }
[
    { 
        task : { id : 1,    id_parent 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: