statusとして同じ要素を持った下記のような配列に対して
JavaScript
1const items = [ 2 {status:'all',task:'AA'}, 3 {status:'all',task:'BB'}, 4 {status:'working',task:'XX'}, 5 {status:'working',task:'YY'}, 6 {status:'complete',task:'ZZ'}, 7]
statusの同じ値をまとめて、taskの部分を配列にした
新しいオブジェクトを作りたいと思っています。
JavaScript
1const newItems = [ 2 {status:'all',task:['AA','BB']}, 3 {status:'working',task:['XX','YY']}, 4 {status:'complete',task:['ZZ']}, 5]
そこでmapやfilterを使えばできるのでは?
と思い、下記のようなコードを作成しました。
JavaScript
1let baseItems = items 2const newItems = baseItems.map((e)=>{ 3 const newBaseItems = baseItems.filter((v)=>v.status === e.status) 4 newBaseItems.map((e)=>{ 5 return { 6 status:e.status, 7 task:e.task 8 } 9 }) 10}) 11console.log(newItems)
しかしoutputはすべてundefinedの配列ができてしまいました。
output
1[undefined, undefined, undefined, undefined, undefined]
どうすれば、同じstatus同士をまとめて新しい配列を
作り直せるのか、どなたか詳しい方ご教示いただけませんでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/01 03:21
2021/03/01 05:36
2021/03/01 06:39