Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!