Necesito revisar una matriz de objetos y devolver una matriz que contenga el "número de impuestos" ordenado por los nombres. ¿Cómo podría hacerlo?
const paddockManagers = [ { id: 1, taxNumber: '132254524', name: 'JUAN TAPIA BURGOS' } , { id: 2, taxNumber: '143618668', name: 'EFRAIN SOTO VERA' } , { id: 3, taxNumber: '78903228', name: 'CARLOS PEREZ GONZALEZ' } , { id: 4, taxNumber: '176812737', name: 'ANDRES VIÑALES CIENFUEGOS' } , { id: 5, taxNumber: '216352696', name: 'OSCAR PEREZ ZUÑIGA' } , { id: 6, taxNumber: '78684747', name: 'JOAQUIN ANDRADE SANDOVAL' } ] function listPaddockManagersByName() { return paddockManagers.map((paddockManager) => addockManager.name + paddockManager.taxNumber) };Use Array.sort y String.localCompare para ordenar la matriz lexográficamente (por la propiedad de name ), luego asigne el resultado para obtener la propiedad taxNumber .
const paddockManagers = [ { id: 1, taxNumber: '132254524', name: 'JUAN TAPIA BURGOS'}, { id: 2, taxNumber: '143618668', name: 'EFRAIN SOTO VERA'}, { id: 3, taxNumber: '78903228', name: 'CARLOS PEREZ GONZALEZ'}, { id: 4, taxNumber: '176812737', name: 'ANDRES VIÑALES CIENFUEGOS'}, { id: 5, taxNumber: '216352696', name: 'OSCAR PEREZ ZUÑIGA'}, { id: 6, taxNumber: '78684747', name: 'JOAQUIN ANDRADE SANDOVAL' } ]; const result = paddockManagers.sort((a, b) => a.name.localeCompare(b.name)).map(e => e.taxNumber) console.log(result);El método de clasificación cambiará el orden inicial de su matriz.
Si desea conservar este orden inicial, primero debe duplicar su matriz ( .map() )
const paddockManagers = [ { id: 1, taxNumber: '132254524', name: 'JUAN TAPIA BURGOS' } , { id: 2, taxNumber: '143618668', name: 'EFRAIN SOTO VERA' } , { id: 3, taxNumber: '78903228', name: 'CARLOS PEREZ GONZALEZ' } , { id: 4, taxNumber: '176812737', name: 'ANDRES VIÑALES CIENFUEGOS' } , { id: 5, taxNumber: '216352696', name: 'OSCAR PEREZ ZUÑIGA' } , { id: 6, taxNumber: '78684747', name: 'JOAQUIN ANDRADE SANDOVAL' } ] const listPaddockManagersByName = arr => arr .map(row=>row) .sort((a,b)=>a.name.localeCompare(b.name)) .map(({name,taxNumber}) => `${name}, ${taxNumber}`) let result = listPaddockManagersByName( paddockManagers ) console.log( paddockManagers ) console.log( result ) .as-console-wrapper { max-height: 100% !important; top: 0 }