JSFiddle - React, Tailwind, and code Playground

JavaScript

var abc={"1":{"left":140,"top":10,"parentDivId":"1"},
         "2":{"left":90,"top":120,"parentDivId":"1"},
         "3":{"left":40,"top":140,"parentDivId":"1"},
         "4":{"left":0,"top":10,"parentDivId":"2"},
         "5":{"left":240,"top":10,"parentDivId":"2"},
         "9":{"left":30,"top":0,"parentDivId":"3"},
         "10":{"left":340,"top":0,"parentDivId":"3"},
         "11":{"left":240,"top":0,"parentDivId":"4"},
         "14":{"left":80,"top":0,"parentDivId":"5"},
         "48":{"left":320,"top":70,"parentDivId":"1"}};

var arr = [];
for (var k in abc)
    arr.push({key : k, obj : abc[k]});
arr.sort(function(a, b) {
    a = a.obj;
    b = b.obj;
    if (a.parentDivId > b.parentDivId) return 1;
    if (a.parentDivId < b.parentDivId) return -1;
    if (a.top > b.top) return 1;
    if (a.top < b.top) return -1;
    return a.left - b.left;
});
abc = {};
for (var i = 0; i < arr.length; i++){
    abc[arr[i].key] = arr[i].obj;
    abc[arr[i].key].index = i + 1;
}
console.log(JSON.stringify(abc).replace(/\},/g,"},\n"));