Tengo una matriz, productData con múltiples propiedades. Así es como actualmente clasifico la matriz por monthlyCost , ascendente.
¿Cómo puedo modificar esto para ordenar todos los artículos por una propiedad booleana isPromoted , seguida de monthlyCost ?
Mi matriz debe comenzar con todos los elementos donde isPromoted == true ordenados por monthlyCost , luego todos los elementos donde isPromoted == false ordenados por monthlyCost .
productData.sort((a, b) => { if (a.monthlyCost > b.monthlyCost) { return 1; } else if (a.monthlyCost < b.monthlyCost) { return -1; } else { return 0; } });Puedes usar esta devolución de llamada:
productData.sort((a, b) => +b.isPromoted - +a.isPromoted || a.monthlyCost - b.monthlyCost); El plus unario es opcional en JavaScript simple, pero en un contexto de TypeScript, deberá ser explícito acerca de la conversión a número y aplicar + .