Quiero ordenar el orden "EN AIRE", "LISTO", "CIERRE", "CERRADO" en JavaScript. ¿Es posible el valor de cadena de la clave del objeto en el mapa o en una especie de JavaScript?
como es :
const list = [ {status: 'READY'}, {status: 'CLOSED'}, {status: 'ONAIR'}, {status: 'CLOSING'}, ];ser - estar:
const list = [ {status: 'ONAIR'}, {status: 'READY'}, {status: 'CLOSING'}, {status: 'CLOSED'}, ];Si entiendo bien lo que quieres decir. Prueba esto:
const sortSequencely = ["ONAIR", "READY", "CLOSING", "CLOSED"]; const list = [ {status: 'READY'}, {status: 'CLOSED'}, {status: 'ONAIR'}, {status: 'CLOSING'}, ]; console.log('Original list', list); const listSorted = list.sort((a,b) => { const indexA = sortSequencely.findIndex(x=>x === a.status); const indexB = sortSequencely.findIndex(x=>x === b.status); return indexA - indexB; }) console.log('Sorted list', listSorted)Una forma de lograr esto es con un diccionario que especifique el orden que desea; luego puede ordenar en función de buscar los valores de status en ese diccionario:
const list = [ {status: 'READY'}, {status: 'CLOSED'}, {status: 'ONAIR'}, {status: 'CLOSING'}, ]; const order = { 'ONAIR' : 0, 'READY' : 1, 'CLOSING' : 2, 'CLOSED' : 3 } list.sort((a, b) => order[a.status] - order[b.status]); console.log(list)