質問編集履歴

1

コードの記載元追加

2023/01/11 05:05

投稿

sasa0330
sasa0330

スコア64

test CHANGED
File without changes
test CHANGED
@@ -10,4 +10,41 @@
10
10
  }
11
11
  ```
12
12
 
13
+ 上記のソースコードは[QiitaにあるTypeScriptの練習問題](https://qiita.com/uhyo/items/e4f54ef3b87afdd65546#3-1-%E9%85%8D%E5%88%97%E3%81%8B%E3%82%89map%E3%82%92%E4%BD%9C%E3%82%8B)にあったものです。
14
+
13
- 基本的な質問ですみませんがよろしくお願いします。
15
+ ご回答をよろしくお願いします。
16
+
17
+ 該当の問題文も以下に転記します。
18
+
19
+ ### 該当の問題文
20
+ 以下のコードで定義される関数mapFromArrayは、オブジェクトの配列からMapを作って返す関数です。配列から取り出した各オブジェクトをMapに登録しますが、その際にキーとして各オブジェクトの指定されたプロパティの値を用います。mapFromArrayに適切な型を付けてください。
21
+
22
+ ```JavaScript
23
+ function mapFromArray(arr, key) {
24
+ const result = new Map();
25
+ for (const obj of arr) {
26
+ result.set(obj[key], obj);
27
+ }
28
+ return result;
29
+ }
30
+
31
+ // 使用例
32
+ const data = [
33
+ { id: 1, name: "John Smith" },
34
+ { id: 2, name: "Mary Sue" },
35
+ { id: 100, name: "Taro Yamada" }
36
+ ];
37
+ const dataMap = mapFromArray(data, "id");
38
+ /*
39
+ dataMapは
40
+ Map {
41
+ 1 => { id: 1, name: 'John Smith' },
42
+ 2 => { id: 2, name: 'Mary Sue' },
43
+ 100 => { id: 100, name: 'Taro Yamada' }
44
+ }
45
+ というMapになる
46
+ */
47
+
48
+ // エラー例
49
+ mapFromArray(data, "age");
50
+ ```