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"));