前提・実現したいこと
前回の投稿です。参考までに。
多次元連想配列?JSON形式を編集して新たな配列にしたい
現在Reactの勉強をしています。
多次元連想配列?JSON形式?をtypeがAの場合の配列のみ残した配列に編集したいのですがどうすればいいでしょうか?
具体的には以下です。
以下の配列をtypeがAだけの配列に編集したいです。
前回と違うのが、もしcustomキーにtype==='A'がなければその連想配列ごと削除したいです
// APIからのレスポンスJSON [ { "id": 1, "name": "甲グループ", "custom": [ { "id": 1, "name": "甲-1", "type": "B" } ] }, { "id": 2, "name": "乙グループ", "custom": [ { "id": 2, "name": "乙-1", "type": "A" }, { "id": 3, "name": "乙-2", "type": "B" } ] } ]
↓ こうしたい
// 期待値。typeがAだけの配列 [ { "id": 2, "name": "乙グループ", "custom": [ { "id": 2, "name": "乙-1", "type": "A" } ] } ]
前回の投稿でcustomの中身を削除する方法はアドバイス頂き実現できました。
次はさらにそのcustomを持っている配列も削除したいです
アドバイスいただけないでしょうか?
###試したこと
以下のように実装しています。
js
1 2 3 4let a = 5 // APIからのレスポンスJSON 6 [ 7 { 8 id: 1, 9 name: "甲グループ", 10 custom: [ 11 { 12 id: 1, 13 name: "甲-1", 14 type: "B" 15 } 16 ] 17 }, 18 { 19 id: 2, 20 name: "乙グループ", 21 custom: [ 22 { 23 id: 2, 24 name: "乙-1", 25 type: "A" 26 }, 27 { 28 id: 3, 29 name: "乙-2", 30 type: "B" 31 } 32 ] 33 } 34 ]; 35 36a.forEach((v) => { 37 v.custom = v.custom.filter(c => { 38 return c.type === "A"; 39 }) 40 if(!v.custom.length){ 41 //TODO vを配列から消したい 42 } 43}); 44 45console.log(a); 46 47 48
https://codepen.io/k49977/pen/eYvrQqL
filterの後でvを削除しようと思ったりしていますが、具体的なコードがイメージできていません。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/07 03:29
2021/06/07 03:37
2021/06/07 04:12 編集
2021/06/07 04:45
2021/06/07 04:48