前提条件
JavaScriptのArray
には、イテレーション系のメソッドがいくつかありますが、その中でも途中で打ち切れるものとして以下のようなものがあります。
.some, .every
…真偽値を返す.find
…配列の値1つを返す.findIndex
…要素の位置を返す
疑問内容
ここで、コールバックの値を返すような手法は存在しないのでしょうか。一例としては、「正規表現の入った配列を前から順にチェックしていって、いちばん先にマッチしたもののマッチ結果を返す」というような利用例が考えられます。
代替手段
もちろん、「ふつうにfor
ループで書く」あるいは「返り値は適当な変数に入れて、.some
を使って途中打ち切りを再現する」ような方法で同じことは実行できますが、再代入や破壊的変更をしない形で書けないかな、と考えています。
「.find
してからコールバックを呼ぶ」だと対象のだけコールバックが2回呼ばれてしまいますし、「.map
してから.find
」では途中打ち切りが行われません。
(なお、「例外を使って強引に値を持ち出す」という手段は、JavaScriptだと例外種別による区分が面倒だという事情もあるので、考えていません)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。