teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

テキスト修正

2020/06/07 03:40

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -20,4 +20,19 @@
20
20
 
21
21
  const data2 = keys.map(key => map1.get(key));
22
22
  ```
23
- - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/gOPpoqM?editors=0012](https://codepen.io/jun68ykt/pen/gOPpoqM?editors=0012)
23
+ - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/gOPpoqM?editors=0012](https://codepen.io/jun68ykt/pen/gOPpoqM?editors=0012)
24
+
25
+
26
+ ### 追記
27
+
28
+ コメントにも返信しましたが、ご質問の要件が
29
+
30
+ - 配列`data1`の要素である長さ2の配列の先頭要素の値(key)の昇順に、2番目の要素のアルファベットを取り出した配列を `data2` として得たい
31
+
32
+ ということなのでしたら、以下のように sort を使えば得られます。
33
+
34
+ ```javascript
35
+ const data2 = [...data1].sort(([k1],[k2]) => k1 - k2).map(([k,v]) => v);
36
+ ```
37
+
38
+ - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/eYJNVBx?editors=0012](https://codepen.io/jun68ykt/pen/eYJNVBx?editors=0012)

2

テキスト修正

2020/06/07 03:40

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -6,4 +6,18 @@
6
6
 
7
7
  const data2 = keys.map(key => data1.find(e => e[0] === key)[1]);
8
8
  ```
9
- - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/NWxqXej?editors=0012](https://codepen.io/jun68ykt/pen/NWxqXej?editors=0012)
9
+ - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/NWxqXej?editors=0012](https://codepen.io/jun68ykt/pen/NWxqXej?editors=0012)
10
+
11
+ ### 追記
12
+
13
+ または、 `data1` の内容を含むMapを作っておくという手もあります。
14
+
15
+ ```javascript
16
+ const data1 = [ [8,"a"], [5,"b"], [12,"c"] ];
17
+ const map1 = new Map(data1);
18
+
19
+ const keys = [ 5, 8, 12 ];
20
+
21
+ const data2 = keys.map(key => map1.get(key));
22
+ ```
23
+ - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/gOPpoqM?editors=0012](https://codepen.io/jun68ykt/pen/gOPpoqM?editors=0012)

1

テキスト修正

2020/06/07 02:17

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -4,6 +4,6 @@
4
4
  const data1 = [ [8,"a"], [5,"b"], [12,"c"] ];
5
5
  const keys = [ 5, 8, 12 ];
6
6
 
7
- const data2 = keys.map(key => data1.find(e => e[0] === key));
7
+ const data2 = keys.map(key => data1.find(e => e[0] === key)[1]);
8
8
  ```
9
9
  - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/NWxqXej?editors=0012](https://codepen.io/jun68ykt/pen/NWxqXej?editors=0012)