Tengo debajo del tipo de objeto, quiero ordenar según sort_value del objeto. Intenté la siguiente solución pero me da error.
var data = { 7:{ name: 'Test1', city: 'Mohali', sort_order: -1 }, 9:{ name: 'Test2', city: 'Delhi', sort_order: 2 }, 10:{ name: 'Test3', city: 'Chicago', sort_order: 0 } }Intenté esta solución
data.sort(function(a, b) { return parseFloat(a.sort_order) - parseFloat(b.sort_order); });me da error como este
Uncaught TypeError: data.sort is not a functionRendimiento esperado
var Expectedop = { 7:{ name: 'Test1', city: 'Mohali', sort_order: -1 }, 10:{ name: 'Test3', city: 'Chicago', sort_order: 0 }, 9:{ name: 'Test2', city: 'Delhi', sort_order: 2 } }sort es un método incorporado disponible en Arrays.
Lo que puede hacer es usar Object.keys(data) que le dará una matriz de claves ( [7,9,10] ) y ordenarlas usando la función de sort . Cuando tenga las claves ordenadas en la matriz, puede usarlas para actualizar sort_order en el objeto de data .
Referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys