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

回答編集履歴

2

letでなくてconstに直した...ねむい

2020/03/28 02:04

投稿

oikashinoa
oikashinoa

スコア2826

answer CHANGED
@@ -1,20 +1,18 @@
1
1
  new Map()と分割代入の練習で作ってみました。
2
2
  ```js
3
- let data = [["a", "b", 10], ["a", "b", 20], ["a", "c", 30], ["a", "c", 40], ["a", "d", 50], ["a", "b", "c",50], ["a", "b", "c",50]];
3
+ let data = [["a", "b", 10], ["a", "b", 20], ["a", "c", 30], ["a", "c", 40], ["a", "d", 50], ["a", "b", "c", 50], ["a", "b", "c", 50]];
4
4
  //[["a","b",30],["a","c",70],["a","d",50];
5
5
 
6
- let aggregate = new Map();
6
+ const aggregate = new Map();
7
7
  data.forEach(keys_value => {
8
- let value_keys = Array.from(keys_value);
8
+ const value_keys = Array.from(keys_value);
9
9
  value_keys.unshift(value_keys.pop());
10
10
  const [value, ...keys] = [...value_keys];
11
- aggregate.set(JSON.stringify(keys), (aggregate.get(JSON.stringify(keys)) || 0)+value);
11
+ aggregate.set(JSON.stringify(keys), (aggregate.get(JSON.stringify(keys)) || 0) + value);
12
12
  });
13
13
 
14
- const result = [...aggregate.entries()].map(v => [...JSON.parse (v[0]),v[1]]); //[ [ "a", "b", 30 ], [ "a", "c", 70 ], [ "a", "d", 50 ], [ "a", "b", "c", 100 ] ]
14
+ const result = [...aggregate.entries()].map(v => [...JSON.parse(v[0]), v[1]]); //[ [ "a", "b", 30 ], [ "a", "c", 70 ], [ "a", "d", 50 ], [ "a", "b", "c", 100 ] ]
15
15
  console.log(result);
16
-
17
-
18
16
  ```
19
17
 
20
18
  ```json

1

keysの方がしっくり来る

2020/03/28 02:04

投稿

oikashinoa
oikashinoa

スコア2826

answer CHANGED
@@ -4,16 +4,17 @@
4
4
  //[["a","b",30],["a","c",70],["a","d",50];
5
5
 
6
6
  let aggregate = new Map();
7
- data.forEach(key_value => {
7
+ data.forEach(keys_value => {
8
- let value_key = Array.from(key_value);
8
+ let value_keys = Array.from(keys_value);
9
- value_key.unshift(value_key.pop());
9
+ value_keys.unshift(value_keys.pop());
10
- const [value, ...key] = [...value_key];
10
+ const [value, ...keys] = [...value_keys];
11
- aggregate.set(JSON.stringify(key), (aggregate.get(JSON.stringify(key)) || 0)+value);
11
+ aggregate.set(JSON.stringify(keys), (aggregate.get(JSON.stringify(keys)) || 0)+value);
12
12
  });
13
13
 
14
14
  const result = [...aggregate.entries()].map(v => [...JSON.parse (v[0]),v[1]]); //[ [ "a", "b", 30 ], [ "a", "c", 70 ], [ "a", "d", 50 ], [ "a", "b", "c", 100 ] ]
15
15
  console.log(result);
16
16
 
17
+
17
18
  ```
18
19
 
19
20
  ```json