Estoy usando una declaración if y tratando de asegurarme de que se detenga cuando cumpla con la mayoría de las condiciones posibles. Por ejemplo, si tengo el siguiente código:
const determineLevel = () => { const wentToKindergarten = true; const wentToElementary = true; const wentToHighSchool = true; const wentToCollege = false; if (wentToKindergarten) { return 1; } if (wentToKindergarten && wentToElementary) { return 2; } if (wentToKindergarten && wentToElementary && wentToHighSchool) { return 3; } if (wentToKindergarten && wentToElementary && wentToHighSchool && wentToCollege) { return 4; } return; };En este ejemplo, si un estudiante asistió al jardín de infantes, la escuela primaria y la escuela secundaria, pero se saltó la universidad, ¿cómo implemento esto? En este momento, solo se detiene en la primera condición que cumple.
const determineLevel = () => { const wentToKindergarten = true; const wentToElementary = true; const wentToHighSchool = true; const wentToCollege = false; var returnme=0; if (wentToKindergarten) { returnme= 1; } if (wentToKindergarten && wentToElementary) { returnme= 2; } if (wentToKindergarten && wentToElementary && wentToHighSchool) { returnme= 3; } if (wentToKindergarten && wentToElementary && wentToHighSchool && wentToCollege) { returnme= 4; } return returnme; };Editar: O tal vez prefiera colocar los condicionales en orden inverso para que se marque primero el más difícil de satisfacer. Lo que sea que prefieras.
La declaración de devolución finaliza la función, una función no se ejecutará más allá de la primera declaración de devolución que encuentre. Entonces, una mejor manera de hacer su código sería algo como:
const determineLevel = () => { var returnNumber; const wentToKindergarten = true; const wentToElementary = true; const wentToHighSchool = true; const wentToCollege = false; if (wentToKindergarten) { returnNumber = 1; } if (wentToKindergarten && wentToElementary) { returnNumber = 2; } if (wentToKindergarten && wentToElementary && wentToHighSchool) { return = 3; } if (wentToKindergarten && wentToElementary && wentToHighSchool && wentToCollege) { returnNumber = 4; } if(returnNumber > 0) { return returnNumber; } return; };De esta manera, revisa todos los escenarios y luego devuelve el número que necesita al final.
Su código no funcionaba para su lógica porque está devolviendo un valor dentro de cada verificación de condición if, lo que hará que la función detenga la ejecución después de que la primera condición se vuelva verdadera.
Puede cambiar la condición if a condiciones else-if .
O puede tener una variable para realizar un seguimiento,
const determineLevel = () => { const wentToKindergarten = true; const wentToElementary = true; const wentToHighSchool = true; const wentToCollege = false; let condition; if (wentToKindergarten) { condition= 1; } if (wentToKindergarten && wentToElementary) { condition= 2; } if (wentToKindergarten && wentToElementary && wentToHighSchool) { condition= 3; } if (wentToKindergarten && wentToElementary && wentToHighSchool && wentToCollege) { condition= 4; } return condition; };