Tengo un objeto como el siguiente, quiero mapear esta matriz en un orden particular como, Argentina, Chile, Estados Unidos
1: {label: 'Turkish Lira', flag: 'TR', id: 1, code: 'TRY', symbol: '₺', …} 2: {label: 'United States Dollar', flag: 'US', id: 2, code: 'USD', symbol: '$', …} 3: {label: 'Argentina Peso', flag: 'AR', id: 3, code: 'ARS', symbol: '$', …} 4: {label: 'Bahraini Dinar', flag: 'BH', id: 4, code: 'BHD', symbol: ' BD', …} 5: {label: 'Brazilian Real', flag: 'BR', id: 5, code: 'BRL', symbol: ' R$', …} 6: {label: 'Bulgarian Lev', flag: 'BG', id: 6, code: 'BGN', symbol: ' лв', …} 7: {label: 'Chilean Peso', flag: 'CL', id: 7, code: 'CLP', symbol: '$', …}¿Cómo puedo hacer eso?
Dado que tiene una lista de elementos que desea ordenar, llamados items . Tiene una lista de índices, como [0, 4, 2, 1, 3]
Puedes indexes.map(i => items[i]);
var items = [{ label: 'Turkish Lira', flag: 'TR', id: 1, code: 'TRY', symbol: '₺' }, { label: 'United States Dollar', flag: 'US', id: 2, code: 'USD', symbol: '$' }, { label: 'Argentina Peso', flag: 'AR', id: 3, code: 'ARS', symbol: '$', }, { label: 'Bahraini Dinar', flag: 'BH', id: 4, code: 'BHD', symbol: ' BD' }, { label: 'Brazilian Real', flag: 'BR', id: 5, code: 'BRL', symbol: ' R$' }, { label: 'Bulgarian Lev', flag: 'BG', id: 6, code: 'BGN', symbol: ' лв' }, { label: 'Chilean Peso', flag: 'CL', id: 7, code: 'CLP', symbol: '$' } ] var indexesList = [3, 5, 0, 2]; function sortByIndex(list, indexes) { return indexes.map(i => items[i]); } console.log(sortByIndex(items, indexesList));Puede usar la ordenación de matriz de javascript
const array = [{ label: 'Turkish Lira', flag: 'TR', id: 1, code: 'TRY', symbol: '₺' }, { label: 'United States Dollar', flag: 'US', id: 2, code: 'USD', symbol: '$' }, { label: 'Argentina Peso', flag: 'AR', id: 3, code: 'ARS', symbol: '$' }] function sortBy(a, b) { if (a.label < b.label) { return -1; } if (a.label > b.label) { return 1; } return 0; } console.log(array.sort(sortBy));Si desea una funcionalidad genérica, puede hacerlo.
const array = [{ label: 'Turkish Lira', flag: 'TR', id: 1, code: 'TRY', symbol: '₺' }, { label: 'United States Dollar', flag: 'US', id: 2, code: 'USD', symbol: '$' }, { label: 'Argentina Peso', flag: 'AR', id: 3, code: 'ARS', symbol: '$' }] const sortBy = (attribute) => (a, b) => { if (a[attribute] < b[attribute]) { return -1; } if (a[attribute] > b[attribute]) { return 1; } return 0; } console.log(array.sort(sortBy('label'))); console.log(array.sort(sortBy('code')));