const obj = { "total": [{ "name": "asdf", "score": 8 }, { "name": "zxcv", "score": 4 }, { "name": "qwer", "score": 17 }, { "name": "poiu", "score": 8 }, { "name": "lkjh", "score": 6 } ] } // expected // ["qwer", "asdf", "poiu", "lkjh", "zxcv"]¿Sabes cómo arreglarlo así?
Los criterios de clasificación están en orden descendente del valor de "puntuación".
const obj = { "total": [{ "name": "asdf", "score": 8 }, { "name": "zxcv", "score": 4 }, { "name": "qwer", "score": 17 }, { "name": "poiu", "score": 8 }, { "name": "lkjh", "score": 6 } ] } const res = obj["total"].sort((i, j) => j.score - i.score).map((i)=>i.name); console.log(res); // expected // ["qwer", "asdf", "poiu", "lkjh", "zxcv"]total.sort((a,b) => b.score-a.score).map( x => x.name );
Array#sort , ordene la matriz según la scoreArray#map , devuelve los nombres de los elementos ordenados const total = [ { "name": "asdf", "score": 8 }, { "name": "zxcv", "score": 4 }, { "name": "qwer", "score": 17 }, { "name": "poiu", "score": 8 }, { "name": "lkjh", "score": 6 } ]; const sortedNames = total .sort(({ score: a }, { score: b }) => b - a) .map(({ name }) => name); console.log(sortedNames);