Весьма примитивная задачка, но тем не менее… Решается перебором массива свойств объекта и сортировкой этого самого массива пользовательской функцией. После сортировки снова обходим массив и записываем в новый(отсортированный) объект те же самые свойства.
const obj = {
"prop_1": {
"pos": 3
},
"prop_2": {
"pos": 8
},
"prop_3": {
"pos": 1
},
"prop_4": {
"pos": 67
},
"prop_5": {
"pos": 0
}
}
objSorted = {}
Object.keys(obj).sort(function (a, b) {
return obj[a].pos - obj[b].pos;
}).forEach(function(key, i){
objSorted[key] = obj[key];
});
console.log(JSON.stringify(objSorted, null,"\t"));
Результат:
{
"prop_5": {
"pos": 0
},
"prop_3": {
"pos": 1
},
"prop_1": {
"pos": 3
},
"prop_2": {
"pos": 8
},
"prop_4": {
"pos": 67
}
}