Tengo una API que se ve así:
{ "id": 749, "firstName": "Ishna", "lastName": "Willis", "email": "Mawfly@awgawggwagov", "phone": "(162)932-3460", "adress": { "streetAddress": "7006 Sed Ave", "city": "Colfax", "state": "WI", "zip": "71085" }, "description": "{lorem|32" },y ordeno esta API de forma ascendente y descendente.
function sortInfo(e) { const column = e.target.dataset.column; const order = e.target.dataset.order; let changeData = e.target; if(order === 'desc') { changeData.setAttribute('data-order', 'asc'); searchResult.fetchResult().then(response => { response.sort((a,b) => a[column] > b[column] ? 1 : -1); buildTable(response) }) } else { changeData.setAttribute('data-order', 'desc'); searchResult.fetchResult().then(response => { response.sort((a,b) => a[column] < b[column] ? 1 : -1); buildTable(response) }) } }Funciona bien si ordeno por nombre o apellido, sin embargo, también necesito ordenar específicamente por estado. Tengo un atributo de datos, pero incluso si lo hago adress.state cuando se le da a la columna, no funcionará. ¿Hay alguna manera de refactorizar este código para acceder a address.state?
Sugeriría crear una función separada para ordenar por dirección, luego será más fácil trabajar en los datos sin agregar toneladas de ifs dentro de la función actual.
Otra forma en la que puedo pensar es aplanar su objeto para ordenarlo, luego podrá ordenar por todas las propiedades del objeto y recuperar la estructura original.