要するに、私の条件が機能的な方法で満たされた場合にループを終了する方法はありますか?
詳しく説明させてください。
私が配列を持っているとしましょう:-
var arr = [4,6,2,24,16,13,88,64,28,39,66,26,9]
から最初の奇数を抽出したいと思いarr
ます。
私の最初の考えは.some
、条件が満たされたときはいつでも最初の要素を使用して取得できるというものでしたが、MDNを調べたところ、.some
戻りboolean
値しか発生しないと思っていたほど単純ではないことがすぐにわかりました。
したがって、私の別のアプローチは、.filter
すべての奇数をフィルターで除去して最初の奇数を取得する方法を使用することでしたが、これを行うと、ループ内でfilter
最初の奇数が既に検出されていても、ループは配列全体を通過します。これは小さな配列では問題ありませんが、大きな要素を持つ配列では、これはまったく不要だと感じます。
関数型技術で何かが足りないのですか、それともこれは通常関数型プログラミングがどのように行われるのですか?
ちょうどと私の解決策の参考のため.some
と.filter
しています: -
var result1, result2;
//Loop ends on the right element but result wrong value
var arr = [4, 6, 2, 24, 16, 13, 88, 64, 28, 39, 66, 26, 9];
result1 = arr.some(function (i) {
return i % 2;
});
//Has right value but loop continues till the end
result2 = arr.filter(function (i) {
return i % 2;
})[0];
array.prototype.findを使用できます-そのページに含まれているのは、愚かなブラウザ用のポリフィルです
使用法:
result1 = arr.find(function(i){
return i%2;
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加