OK , como você deve saber, o javascript possui sort () função , para ordenar matrizes, mas nada para o objeto ...
Portanto, nesse caso, precisamos, de alguma forma, obter a matriz das chaves e classificá-las, e é por isso que a API fornece objetos em uma matriz na maioria das vezes, porque a matriz tem mais funções nativas para brincar com elas do que o objeto literal, de qualquer maneira, a solução rápida está usando Object.key, que retorna uma matriz das chaves de objeto, eu crio a função ES6 abaixo, que faz o trabalho para você, ele usa funções nativas de classificação () e de redução () em javascript:
function sortObject(obj) {
return Object.keys(obj)
.sort().reduce((a, v) => {
a[v] = obj[v];
return a; }, {});
}
E agora você pode usá-lo assim:
let myObject = {a: 1, c: 3, e: 5, b: 2, d: 4};
let sortedMyObject = sortObject(myObject);
Verifique o selectedMyObject e você poderá ver o resultado classificado por chaves como esta:
{a: 1, b: 2, c: 3, d: 4, e: 5}
Além disso, o objeto principal não será tocado e, na verdade, estamos recebendo um novo objeto.
Também crio a imagem abaixo, para tornar as etapas da função mais claras, caso você precise alterá-la um pouco para que funcione do seu jeito: