Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
¿Cómo ordenar y obtener los datos en función de ciertas condiciones en una matriz de objetos?

Tengo 2 conjuntos de objetos, uno para EE. UU. y otro para Canadá. Los datos van de la siguiente manera

 const data = [ {country: {cntryShortName:"USA"}} {country: {cntryShortName:"USA"}} {country: {cntryShortName:"CAN"}} {country: {cntryShortName:"USA"}} {country: {cntryShortName:"CAN"}} {country: {cntryShortName:"CAN"}} {country: {cntryShortName:"USA"}} {country: {cntryShortName:"USA"}} ]

Aquí espero dividir los datos en 2 como

 USA: ..... ..... CAN: ..... .....

Esto es lo que he probado

 const allData = data.filter(item => item.country)

Aquí obtengo todos los datos de la matriz, pero quiero ordenarlos según el nombre del país, pero no se espera una codificación estricta. Cualquier solución óptima

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

puedes hacer algo como esto

 const data = [ {country: {cntryShortName:"USA"}}, {country: {cntryShortName:"USA"}}, {country: {cntryShortName:"CAN"}}, {country: {cntryShortName:"USA"}}, {country: {cntryShortName:"CAN"}}, {country: {cntryShortName:"CAN"}}, {country: {cntryShortName:"USA"}}, {country: {cntryShortName:"USA"}} ] const order = ['USA', 'CAN'] const reorder = data.sort((a, b) => { return order.indexOf(a.country.cntryShortName) - order.indexOf(b.country.cntryShortName) }) console.log(reorder)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que lo más probable es que tenga que tener un nuevo objeto en el que insertará los datos después de recorrer la matriz. Algo como:

 let allData = {}; data.forEach(function (countryData) { if (allData[countryData.country.cntryShortName] !== undefined) { // Push the data into the array allData[countryData.country.cntryShortName].push(countryData); } else { // Initialize an empty array if the country key doesn't exist allData[countryData.country.cntryShortName] = []; } });

Terminarás con algo como esto:

 { "USA": [ { "country": { "cntryShortName": "USA" } }, ], "CAN": [ { "country": { "cntryShortName": "CAN" } }, ] }

Entonces ahora solo podrá obtener los datos del país usando:

 allData.USA // or allData.CAN
about 4 years ago · Juan Pablo Isaza Denunciar

0

JavaScript (Node.js) , 74 bytes

 f=(a,g=e=>parseInt(e.country.cntryShortName,36))=>a.sort((a,b)=>g(a)-g(b))

¡Pruébelo en línea!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda