2012-04-25 10 views
2
_.filter(this.pluck(key),function(item){ 
    return item ? value.toLowerCase() === item.toLowerCase() : false; 
    }); 

コールバックの戻り値がtrueの場合、フィルタの反復処理を停止する方法はありますか?_filter()から抜け出す

+0

不明:このコードの内容はどうですか?フィルタリングされたデータは使用されるか、特定の値が存在するかどうかだけをテストする必要がありますか? 'filter()'を使用して、何らかの条件を破りたい理由は何ですか? - はい、このQは "古い"ですが、ユーザーはまだそれにつまずくかもしれません。 –

答えて

2

私は、これはany(別名some)で行うことができますアウトが見つかりました:

_.any(this.pluck(key),function(item){ 
     return item ? value.toLowerCase() === item.toLowerCase() : false; 
     }); 
+3

'any()'は、 '' filter() '(http://underscorejs.org/#filter)の" breakable "を置き換えるものではありません。あなたの初期の意図がコレクションにある特定の値を含んでいるかどうかを確認することだったなら、 'any()'はうまくいくでしょう。そうでなければ、フィルタリングされたデータを使いたい場合にも 'any()'は適切ではありません。私はそれに応じて 'for' /' while'ループと 'break;'を使います。 –

1

に悪いような - しかし、最善のアプローチは次のようにあなたのDSを扱う(またはに変換)するように思わアレイとを繰り返しますfor -loopまたは同等物であり、break; conditonである。

Please downvote awnserのクエスト。これが間違っている場合。 ;)

関連する問題