関数を使用して配列をループし、一致を返す場合、実際には最後に false/null を返す必要がないことに最近気付きました。
たとえば、私が持っている場合:
※編集例です。元の例は、単純化しようとした関数からのものでしたが、名前/コンテキストを変更するのを忘れていました。混乱させて申し訳ありません。これが私の質問のタイトルに合ったより良い例です:
var hasKey = hasKeyMatch(key);
function hasKeyMatch(key) {
for (var i = 0; i < array.length) {
if (array[i].key === key) {
return true;
}
}
};
キーの戻りがない場合、hasKey は未定義になるため、実際には return false は必要ありません。したがって、引き続き hasKey をブール値として使用できます。
しかし、これは良いスタイルと見なされますか? Java のような言語では「バックアップ」の戻り値が必要であることを認識しているため、JS にその習慣を持ち込む人もいます。しかし、返品の実際のコストについてはわかりませんが、不必要な返品を最小限に抑えることが理想的だと思います.
そして、以下の質問への回答を見ると、目的の配列に既にプッシュされている変数を返すことを選択した理由について混乱しています。彼のリターンは意図的であり、返された変数をどこにも保存するつもりはないと思います。関数の最後に変数を返すことの利点 (ガベージ コレクションなど) はありますか?