Tengo un objeto cuyas claves son generadas dinámicamente por los datos recibidos de la respuesta de la API.
código:
var object = { ABS-Test: 11, CAS-tab-Running: 9, ABS-tag-objetc: 9, Internet-Facing-ABS: 9, ABS-connector-test: 11 }¿Cómo puedo ordenar usando el objeto anterior según el valor y la clave? Ejemplo de la salida esperada cuando se ordena según la clave del objeto;
var sortedObject = { ABS-connector-test: 11, ABS-tag-objetc: 9, ABS-Test: 11, CAS-tab-Running: 9, Internet-Facing-ABS: 9 } var sortedValueObject = { ABS-tag-objetc: 9, CAS-tab-Running: 9, Internet-Facing-ABS: 9, ABS-connector-test: 11, ABS-Test: 11, }Me he referidoa Ordenar un objeto JavaScript por clave o valor; ES6 y hasta ahora tengo esto para ordenar por valor:
sorted_object = Object.entries(unsorted_object) .sort(([,v1], [,v2]) => +v2 - +v1) .reduce((r, [k, v]) => Object.assign(r, { [k]: v }), {});y esto para ordenar por clave:
sorted_object = Object.entries(data) .sort((a, b) => a[1] - b[1]) .reduce((a, [key, val]) => { a[key] = val; return a; }, {});Ambos devuelven la salida en cierto orden (ya sea ascendente o descendente). ¿Tenemos una lógica o un método lodash que ayude a alternar la lógica de clasificación según el valor asc o desc proporcionado?
Probé a través de _orderBy() y _sortBy() de lodash Reactjs, sin embargo, requieren que se pase un valor de clave estática para obtener los resultados.