2017-10-11 9 views
1

からヌル削除:それはそれはオブジェクトARRAにnullを追加data_infogenreを見つけることができなかった場合は、この機能に問題があるJavascriptが私はこのような二つの配列のマージされafunction抱えているオブジェクト

var sorting = data.genre.map((i) => data_info.find((o) => o.id === i)); 

を私の機能は失敗します。
質問:上記の1行でヌル値をすべて削除できますか?

私は上記のTHRラインからこの出力を得る:

[{"id":1,"category":"Action"},{"id":2,"category":"Adventure"},null] 

そして、これを取得する必要があります:

[{"id":1,"category":"Action"},{"id":2,"category":"Adventure"}] 

私は上記の行に&& data_info(o) !== nullを追加しようとしましたが、私は、オブジェクトにnullを取得しますとにかく配列。

+0

'map'の出力に' filter'を追加します。 filter((i)=> return i!= null); ' – gurvinder372

+0

マップ関数は次のようになります。配列の各項目に対して操作を適用し、入力配列とまったく同じ数の要素を持つ配列を返します。 – ajaysinghdav10d

+0

[値で配列からアイテムを削除する方法](https://stackoverflow.com/questions/3954438/how-to-remove-item-from-array-by-value)の可能な複製 –

答えて

2

変更.map

.filterから
var sorting = data.genre.filter((i) => data_info.find((o) => o.id === i) ? true : false); 
1

filterメソッドを使用するには、コールバック提供関数を渡します。

var sorting = data.genre.map((i) => data_info.find((o) => o.id === i)).filter(function(item){ 
    return item!=null; 
}); 
1

あなたはnullを削除するには、あなたのmap関数の結果をfilterすることができます。

var sorting = data.genre.map((i) => data_info.find((o) => o.id === i)).filter(item => { 
    return item !== null; 
}); 

フィルタ()メソッドは、提供される機能によって実現 試験に合格するすべての要素を使用して新しい配列を作成します。

関連する問題