dado
let jsons = [ { "id": 10 ... }, { "id": 4 ... }, { "id": 1 ... }, ... ]Quiero que los jsons se ordenen por id, por ejemplo.
let jsons = [ { "id": 1 ... }, { "id": 2 ... }, { "id": 3 ... }, ... ]Esto es lo que he hecho para hacer esto (pero es extremadamente ineficiente)
let jsons = [ { "id": 10 }, { "id": 4 }, { "id": 1 }, ] let new_list = [] length = jsons.length for(let i = 0; i < length; i++) { let index = 0 let cur_lowest = 50000 // not sure how to get an infinite upper_bound for(let j = 0; j < jsons.length; j++) { if(jsons[j].id <= cur_lowest) { cur_lowest = jsons[j].id index = j } } new_list.push(jsons[index]) jsons.splice(index, 1) } console.log(new_list);Entonces esto funciona, lo hice aquí https://jsfiddle.net/xceybhLg/5/
¿Pero hay una manera más simple? Preferiblemente con la función ordenada, creo que se puede adjuntar a las teclas, pero al leer la documentación, realmente no lo entiendo.
¿Por qué no puede usar una función de clasificación simple que acepte una lista y la clave contra la cual se realizará la acción de clasificación?
let jsons = [ { "id": 10 }, { "id": 4 }, { "id": 1 }, ]; function sortList(list, key) { return list.sort((a, b) => a[key] - b[key]); } const new_list = sortList(jsons, 'id'); console.log(new_list);