const array = [{
        "basedOnET": 524,
        "currentTrigger": "",
        
        "triggerName": "Trigger_1",
        children: []
    },
    {
        "basedOnET": 524,
        "currentTrigger": "",
      
        "triggerName": "Trigger_2",
        children: []
    },
    {
        "basedOnET": "Trigger",
        "currentTrigger": "Trigger_2",
        
        "triggerName": "Trigger_3",
        children: []
    },
    {
        "basedOnET": "Trigger",
        "currentTrigger": "Trigger_3",
        "triggerName": "Trigger_4",
        children: []
    },
    {
        "basedOnET": 524,
        "currentTrigger": "",
      
        "triggerName": "Trigger_5",
        children: []
    },
    {
        "basedOnET": "Trigger",
        "currentTrigger": "Trigger_5",
    
        "triggerName": "Trigger_6",
        children: []
    },
    {
        "basedOnET": 524,
        "currentTrigger": "",
   
        "triggerName": "Trigger_7",
        children: []
    }
];

let data = [];
data.push(array[0]);

const findElement = (element, matchWith, value) => {
    // console.log("matchWith", element.currentTrigger, matchWith);
    if (
        element.triggerName === matchWith
    ) {
        return element.children.push(value);
    }
    // return true;
    else if (element.children.length) {
        let result = false;
        for (let i = 0; !result && i < element.children.length; i++) {
            findElement(element.children[i], matchWith, value);
        }
        // return true;
    }
};

for (let i = 1; i < array.length; i++) {
    if (array[i].currentTrigger) {
        findElement(data[0], array[i].currentTrigger,array[i]);
        // console.log(data[0].triggerName,array[i].currentTrigger)
    } else {
        // console.log("\nNo Trigger Type",data[0].triggerName,array[i].currentTrigger,'\n')
        data[0].children.push(array[i]);

    }
}

console.log(JSON.stringify(data))