前提
複数のスタッフオブジェクトに付加される属性情報をオブジェクトで
作成しています。
一応目的とするフィルタリングはできたのですが、すごく遠回りしているように
思っております。
実現したいこと
複数のスタッフに対する属性をオブジェクトで付加しているのですが
その属性キーがあるか無いかで新しいオブジェクトとして再構成したいと
考えております。
発生している問題・エラーメッセージ
一応目的にはたどり着いたのですが、コードが回りくどい(正しくない使い方)ように思っております。
具体的にはmapでの処理でif文で、不要なオブジェクトがreturnされてほしくないのですが、
なぜかstaffA などがundefinedで戻ってくるため、処理した後の配列checkedArr から、undefinedをfilter()で取り除くという処理をしています。
正しい書き方を教えていただければとおもいご質問させていただきました。
該当のソースコード
それぞれのstaffオブジェクトで属性として「b」を「保有していない」staffのみ抽出
javascript
1const obj ={staffA:{a:1,b:1},staffB:{a:2},staffC:{a:3,b:3,c:3},staffD:{a:4}} 2 3let checkedArr = Object.keys(obj).map((item)=>{ 4 if(!obj[item].b){ 5 return [item,obj[item]] 6 } 7}) 8let newArr=checkedArr.filter((element) => element !== undefined) 9let newObj = Object.fromEntries(newArr) 10console.log(newObj)
output
1{staffB:{a:2},staffD:{a:4}}
お手数おかけいたしますが、ご指導いただければ幸いです。
よろしくお願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。