Ich war immer verwirrt über die beste Möglichkeit, damit umzugehen. Die Methode, die ich in der Vergangenheit benutzt habe, funktioniert, aber es scheint, als müsste es einen besseren Weg geben.Javascript-Break/Return-Funktion innerhalb der Funktion
Unten habe ich einen Codeabschnitt, den ich zurückgeben möchte item
für die Funktion getData
. Problem ist in dem Beispiel unten, das es für die Funktion forEach
nicht die getData
Funktion zurückgibt.
function getData() {
var array = ["element1","element2"];
array.forEach(function (item) {
if (item == "element2") {
return item;
}
});
}
Ich habe etwas getan, um dies zu überwinden.
function getData() {
var array = ["element1","element2"];
var returnValue;
array.forEach(function (item) {
if (item == "element2") {
returnValue = item;
}
});
if (returnValue) {
return returnValue;
}
}
Gibt es einen besseren Weg, damit umzugehen? Scheint so, als ob diese zusätzlichen 4 Zeilen Code nur Verwirrung und Unordnung in meinem Code erzeugen.
['Array.prototype.find()'] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find) oder ['Array.prototype.indexOf' ] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – zerkms
Wenn Sie nur eine for-Schleife verwendet haben, könnten Sie einfach ohne Probleme zurückkehren. Wenn Sie das nicht schaffen, müssen Sie so etwas wie oben beschrieben tun. – Whothehellisthat
Sie können dies vereinfachen, indem Sie die 'if'-Anweisung am Ende entfernen. Wenn returnValue nicht gesetzt wurde, wäre es "undefiniert", würde also undefined zurückgeben - genauso wie wenn if fehlschlägt; Die Funktion würde sowieso 'undefiniert' zurückgeben. – Whothehellisthat