回答編集履歴

2

tuika

2022/11/30 17:00

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -21,4 +21,5 @@
21
21
 
22
22
  ##### 連想配列を生成する場合
23
23
  - 基本的な考え方は「2次元配列を生成する場合」と同じです。
24
+ - ただし、`hoge01`は`.map()`ではなく`.forEach()`を使い繰り返し処理を行います。
24
- - ただし、`hoge01`は`.map()`ではなく`.forEach()`を使い、用意した空のオブジェクト(`adds2`)に、インデックス番号と、`hoge02.bb + hoge01.aa`してできあがった配列を代入していきます。
25
+ - 用意した空のオブジェクト(`adds2`)に、インデックス番号と、`hoge02.bb + hoge01.aa`してできあがった配列を代入していきます。

1

tuika

2022/11/30 16:58

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -3,12 +3,22 @@
3
3
  const hoge01 = [{aa:2},{aa:4}];
4
4
  const hoge02 = [{bb:2},{bb:4},{bb:6},{bb:8}];
5
5
 
6
+ // 2次元配列を生成する場合
6
- const sums = hoge01.map(obj01 => hoge02.map(obj02 => obj02.bb + obj01.aa));
7
+ const adds = hoge01.map(obj01 => hoge02.map(obj02 => obj02.bb + obj01.aa));
8
+ console.log(adds); // [[4, 6, 8, 10], [6, 8, 10, 12]]
9
+
10
+ // 連想配列を生成する場合
7
- console.log(sums);
11
+ const adds2 = {};
12
+ hoge01.forEach((obj01, index) => adds2[index] = hoge02.map(obj02 => obj02.bb + obj01.aa));
13
+ console.log(adds2); // {'0': [4, 6, 8, 10], '1': [6, 8, 10, 12]}
8
14
  ```
9
-
15
+ ##### 2次元配列を生成する場合
10
16
  - 最終的に出来上がる配列の要素数は2個ですから、`hoge01`に対して`.map()`を使います。
11
17
  - その中身の要素は要素数が4個の配列ですから、`hoge02`に対して`.map()`を使います。
12
18
  - `hoge02`の要素の値をどのように書き換えるかというと、
13
19
  - `hoge02`の要素それぞれ、`bb + aa`の値に書き換えるわけです。
14
20
  - よって、`hoge02.bb + hoge01.aa`といった内容を`hoge02`の`.map()`で処理をします。
21
+
22
+ ##### 連想配列を生成する場合
23
+ - 基本的な考え方は「2次元配列を生成する場合」と同じです。
24
+ - ただし、`hoge01`は`.map()`ではなく`.forEach()`を使い、用意した空のオブジェクト(`adds2`)に、インデックス番号と、`hoge02.bb + hoge01.aa`してできあがった配列を代入していきます。