前提・実現したいこと
現在Reactの勉強をしています。
多次元連想配列?JSON形式?をtypeがAの場合の配列のみ残した配列に編集したいのですがどうすればいいでしょうか?
具体的には以下です。
以下の配列をtypeがAだけの配列に編集したいです。
// APIからのレスポンスJSON [ { "id": 1, "name": "甲グループ", "custom": [ { "id": 1, "name": "甲-1", "type": "A" } ] }, { "id": 2, "name": "乙グループ", "custom": [ { "id": 2, "name": "乙-1", "type": "A" }, { "id": 3, "name": "乙-2", "type": "B" } ] } ]
↓ こうしたい(期待値)
// typeがAだけの配列 [ { "id": 1, "name": "甲グループ", "custom": [ { "id": 1, "name": "甲-1", "type": "A" } ] }, { "id": 2, "name": "乙グループ", "custom": [ { "id": 2, "name": "乙-1", "type": "A" } ] } ]
filterでtype=='A'で絞って、mapで配列にするなど検討しましたが、多重になっている状況などもあいまって
少し具体的な実装がイメージができていません。
アドバイスいただけないでしょうか?
###試したこと
以下のように実装してみましたが、配列の中の配列を扱うときにどうしたらいいかわからなくなりました。
https://codepen.io/k49977/pen/eYvrQqL
js
1 2let a=// APIからのレスポンスJSON 3[ 4 { 5 "id": 1, 6 "name": "甲グループ", 7 "custom": [ 8 { 9 "id": 1, 10 "name": "甲-1", 11 "type": "A" 12 } 13 ] 14 }, 15 { 16 "id": 2, 17 "name": "乙グループ", 18 "custom": [ 19 { 20 "id": 2, 21 "name": "乙-1", 22 "type": "A" 23 }, 24 { 25 "id": 3, 26 "name": "乙-2", 27 "type": "B" 28 } 29 ] 30 } 31]; 32 33a = a.filter( function( value,i ) { 34 35 //TODO customが配列のためうまくいかない。配列の中の配列はどうすればいいか 36 return value.custom[i].type == "A"; 37 38}) 39 40console.log(a); 41
回答1件
あなたの回答
tips
プレビュー