2017-09-16 5 views
0

私は配列personを3つのオブジェクトとフォームを持っています。descriptionという名前のオブジェクトを返したいと思います。今度はマップを使ってpersonを繰り返しますが、ここでは、descriptionがない場合はundefinedを返します。私は最後にdescriptionオブジェクトだけを持つ配列を取得したい(未定義ではない)。空でないオブジェクトの配列を返します

const person = [ 
 
{abc: 'abc',description:{}}, 
 
{qwe:'qwe', def:'def'}, 
 
{abcd: 'abcd',description:{}} 
 
] 
 

 
console.log(person.map(indivi => indivi.description))

+0

をmap' '前に' filter'を追加... –

答えて

1

あなたは.filterでそれらをフィルタリングすることができます:

const person = [ 
 
    {abc: 'abc',description:{}}, 
 
    {qwe:'qwe', def:'def'}, 
 
    {abcd: 'abcd',description:{}} 
 
] 
 

 
const descriptions = person 
 
    .filter(indivi => indivi.description) 
 
    .map(indivi => indivi.description);

0

あなたはオブジェクトにmapを呼び出す前に、description性質を持っていないオブジェクトを削除するfilterを適用することができます。

const person = [ 
 
{abc: 'abc',description:{}}, 
 
{qwe:'qwe', def:'def'}, 
 
{abcd: 'abcd',description:{}} 
 
] 
 

 
console.log(person.filter(t => t.description).map(indivi => indivi.description))

関連する問題