Estoy tratando de ordenar la lista de méritos de mi matriz de objetos, pero en mi objeto, hay una cadena "Error", quiero omitirla durante la clasificación, pero cuando se realiza la clasificación, se debe agregar el mérito fallido al final.
const markSheet = [{ merit: 1 }, { merit: "Failed" }, { merit: 2 }]; const defineMerit = (markSheet) => { return markSheet .filter((item) => item.merit !== "Failed") .sort((a, b) => a.merit - b.merit); }; console.log(defineMerit(markSheet))ejemplo:
[ { "merit": 1 }, { "merit": 2 }, { "merit": "Failed" } ]Coloque la verificación fallida dentro de la devolución de llamada de clasificación (compare la diferencia de si un elemento es Fallido o no)
const markSheet = [{ merit: 1 }, { merit: "Failed" }, { merit: 2 }]; const defineMerit = (markSheet) => { return markSheet .sort((a, b) => ( ((a.merit === 'Failed') - (b.merit === 'Failed')) || a.merit - b.merit )); }; console.log(defineMerit(markSheet))o invierta la condición del filtro después y combine con la matriz ordenada
const markSheet = [{ merit: 1 }, { merit: "Failed" }, { merit: 2 }]; const defineMerit = (markSheet) => { const sorted = markSheet .filter((item) => item.merit !== "Failed") .sort((a, b) => a.merit - b.merit); return sorted.concat( markSheet.filter((item) => item.merit === "Failed") ); }; console.log(defineMerit(markSheet))