前提・実現したいこと
初心者です。どなたかご教授お願いいたします。
TypeScript(Angular)で配列に格納されているJSONを加工したものを新たな配列に入れ直したいのですが、その際にfor文を用いずに実装させたいです。
発生している問題・エラーメッセージ
アロー関数やforEachを用いて実装できるのでは、と思っているのですが具体的な実装方法が思いついていない状態です。
該当のソースコード
TypeScript
1let arrayBefore = []; //JSON 2/* 3arrayBefore には以下のJSONが格納されています 4body: JSON.stringify({ 5 dataSizw: 5, 6 data: [ 7 { 8 userId: '001', 9 userName: '一郎', 10 language: 'ja', 11 Date: '2021-08-16T12:29:59', 12 }, 13 { 14 userId: '002', 15 userName: '二郎', 16 language: 'en', 17 Date: '2021-08-17T12:29:58', 18 }, 19 { 20 userId: '003', 21 userName: '三郎', 22 language: 'ja', 23 Date: '2021-08-18T12:29:57', 24 }, 25 { 26 userId: '004', 27 userName: '四郎', 28 language: 'fr', 29 Date: '2021-08-19T12:29:56', 30 }, 31 { 32 userId: '005', 33 userName: '五郎', 34 language: 'ja', 35 Date: '2021-08-16T12:29:59', 36 }, 37*/ 38let arrayAfter = []; //Beforeの中身を加工したものをここに入れたい 39 40//ここからのfor文をアロー関数やforEachなどで置き換えたい 41for (let i in arrayBefore.data) { 42 const actionDay: Date = new Date(arrayBefore.data[i].Date); 43 44 arrayAfter.push({ 45 actionDay: //Dateを分割する 46 actionDay.getFullYear() + 47 '/' + 48 actionDay.getMonth() + 1 + 49 '/' + 50 actionDay.getDate(), 51 actionTime: //Dateを分割する 52 actionDay.getHours() + 53 ':' + 54 actionDay.getMinutes(), 55 userName: arrayBefore.data[i].userName, 56 language: arrayBefore.data[i].language, 57 }); 58 } 59 60console.log(arrayAfter); 61/* 62arrayAfetrには以下のように要素の固まりが5個pushされています。 63[ 64{ 65actionDay: '2021/8/16', 66actionTime: '12:29' 67userName: '一郎', 68language: 'ja', 69}, 70{ 71要素2つ目(中身省略) 72}, 73{ 74要素3つ目(中身省略) 75}, 76{ 77要素4つ目(中身省略) 78}, 79{ 80要素5つ目(中身省略) 81} 82] 83*/
試したこと
Stack Overflowを覗いてみると似たような質問はあるのですが、配列の一部(今回でいうactionDay, actionTime)のみに特定の操作をするときにどうすればいいのかが解決しませんでした。
https://stackoverflow.com/questions/63489109/from-arrow-function-push-object-to-array
すみませんがどなたかご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー