2017-03-09 8 views
-4

値がtrueのときに、フィルタメソッドを使用してオブジェクトプロパティを返します。しかし、私のフィルタメソッドは真の値を見つけたときに配列の繰り返し処理を止めないので、すべての要素を繰り返し処理してヌル値を返します。配列からオブジェクトプロパティを返す

条件がtrueになると、配列フィルタから抜け出したいと思います。

は、これは私がやったことです:

array.filter((v)=>{ 
    var a = v.id === x ? v.collection : null 
    console.log(a) 
    return a 
}) 

私は、アレイ内の三つの要素と私のconsole.logプリントアウト'music', 'null', 'null'を持っています。私はそれが音楽の時に壊れて欲しい。

+1

フィルタの代わりにfindを使用 – rasmeister

+0

['.filter()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)関数は、 *ブール値*を返すコールバック。特定の要素を持つ新しい配列*を返すように設計されています。 –

+0

[MDN:* Array.prototype.find *](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)を参照してください。 – RobG

答えて

3

最初に一致する要素のみが必要な場合は、filterではなくfindを使用できます。

最初に一致する要素を返し、反復処理を停止し、一致を返します。

+0

ありがとうございました。 – user94628

関連する問題