これを処理する最善の方法について私は常に混乱してきました。私が過去の作品で使用してきた方法ですが、より良い方法がなければならないようです。関数内のJavascriptブレーク/リターン関数
以下、私は、の関数getData
を返したいコードセクションがあります。問題は以下の例ではgetData
関数ではなく、forEach
関数の戻り値です。
function getData() {
var array = ["element1","element2"];
array.forEach(function (item) {
if (item == "element2") {
return item;
}
});
}
私はこれを克服するためにこのようなことをしてきました。
function getData() {
var array = ["element1","element2"];
var returnValue;
array.forEach(function (item) {
if (item == "element2") {
returnValue = item;
}
});
if (returnValue) {
return returnValue;
}
}
これを処理するには良い方法はありますか?コードの余分な4行のように思えるだけで、混乱と私のコードに混乱を作成します。
['Array.prototype.find()'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find)または['Array.prototype.indexOf' ](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – zerkms
forループを使用したばかりの場合、問題なく返すことができます。それに失敗すると、あなたは上記のようなことをする必要があります。 – Whothehellisthat
最後に 'if'ステートメントを削除することで、単純化することができます。 returnValueが設定されていない場合は 'undefined'となるので、undefinedを返します。ifが失敗したときと同じです。関数はとにかく 'undefined'を返します。 – Whothehellisthat