JSFiddle - React, Tailwind, and code Playground

HTML

<div id="newArray"></div>

JavaScript

var items = [
    {id:1, parentId:0, name:'item1'},
    {id:2, parentId:1, name:'item1.2'},
    {id:3, parentId:1, name:'item1.3'},
    {id:4, parentId:3, name:'item3.4'},
    {id:5, parentId:3, name:'item3.5'}
];
var myObj = function(id, parentId, name, children){
    this.id = id;
    this.parentId = parentId;
    this.name = name;
    this.children = children;
};

function transform(itms){
    var resultArray=[];
    var parentsById={};//this acts as a dictionary for storing the myObj parents for adding children after.
    for(var i=0;i<itms.length;i++){
         var item=itms[i];
        var transformedItem=new myObj(item.id,item.parentId,item.name,[]);
         parentsById[item.id]=transformedItem;
        if(parentsById[item.parentId])
        {
            parentsById[item.parentId].children.push(transformedItem);   
        }else
        {
            resultArray.push(transformedItem);
        }
            
    }
    return resultArray;

}
var newItems=[];
$(document).ready(function(){
     newItems=transform(items);
   var newArrayStr= JSON.stringify(newItems);
    $("#newArray").text(newArrayStr);

});