Ich habe ein Array. Ich habe eine Funktion, die überprüft, ob das Array die Nummer '2' enthält oder nicht.Verlassen Funktion bei Rückgabe
Wenn die Nummer gefunden wird, möchte ich, dass die Funktion wahr zurückgibt. Wenn nicht, sollte es false zurückgeben.
Ich schrieb dies:
function hasTwo(arr) {
arr.forEach((x) => {
if (x === 2) {
console.log("Two!")
return true
}
})
console.log("No two :(")
return false
}
let arr = [1,2,3,4,5,6]
console.log(hasTwo(arr))
Meine Erwartung war, dass auf der zweiten forEach Iteration, die, wenn die Bedingung erfüllt werden würde und die Funktion zurückkehren würde wahr.
Dies ist jedoch die Konsolenausgabe:
Two!
No two :(
false
Ich glaube, dass die erste return-Anweisung aus dem bedingten Block zurückkehrt, nicht die einschließende Funktion. (Ist das richtig?)
ich geschrieben habe, die Funktion mit einer Variablen den Rückgabewert zu speichern:
function hasTwo(arr) {
let result = false
arr.forEach((x) => {
if (x === 2) {
console.log("Two!")
result = true
}
})
return result
}
Aber ich sehe nicht der Punkt der Funktion, wenn die x fort === 2 Bedingung wurde erfüllt. Gibt es eine Möglichkeit, einen Wert zurückzugeben und die Funktion sofort zu beenden?
Sie geben Wert innerhalb der Rückruffunktion zurück –
Warum nicht '.filter()'? – evolutionxbox
@evolutionxbox: Weil Filter die Iteration auch nicht beendet? – Bergi