前提・実現したいこと
ネストの深いオブジェクトをフラットな連想配列に変換したい
具体的には
{ '1/1': { 1000: { 'a': 0, 'b': 0, } }, '1/2': { 1000: { 'a': 0, 'b': 0, } }, };
を
[ { "date": "1/1", "code": "1000", "item": "a", "value": 0 }, { "date": "1/1", "code": "1000", "item": "b", "value": 0 }, { "date": "1/2", "code": "1000", "item": "a", "value": 0 }, { "date": "1/2", "code": "1000", "item": "b", "value": 0 } ]
に変換したいです。
発生している問題・エラーメッセージ
よいところまではいってる気がするのですが、配列のIndexが邪魔してできません。。。
js
1const obj = { 2 '1/1': { 3 1000: { 4 'a': 0, 5 'b': 0, 6 } 7 }, 8 '1/2': { 9 1000: { 10 'a': 0, 11 'b': 0, 12 } 13 }, 14}; 15 16const res = Object.entries(obj).map(([date, dateValues]) => { 17 return { 18 ...Object.entries(dateValues).map(([code, codeValues]) => { 19 return { 20 ...Object.entries(codeValues).map(([item, itemValue]) => { 21 return { 22 date, 23 code, 24 item, 25 value: itemValue, 26 }; 27 }), 28 }; 29 }), 30 }; 31}); 32 33 34console.log(res) 35 36// [{ 37// "0": { 38// "0": { 39// "date": "1/1", 40// "code": "1000", 41// "item": "a", 42// "value": 0 43// }, 44// "1": { 45// "date": "1/1", 46// "code": "1000", 47// "item": "b", 48// "value": 0 49// } 50// } 51// }, { 52// "0": { 53// "0": { 54// "date": "1/2", 55// "code": "1000", 56// "item": "a", 57// "value": 0 58// }, 59// "1": { 60// "date": "1/2", 61// "code": "1000", 62// "item": "b", 63// "value": 0 64// } 65// } 66// }]
どうすればよいですか?
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/15 01:08