回答編集履歴
2
修正
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
質問のコードのように、`array` の要素が `user_id` の昇順に並んでいることを前提としてよいのであれば、以下です。
|
2
2
|
```javascript
|
3
3
|
const result = array.reduce((totals, { A, B, C, sum, user_id }) => {
|
4
|
-
if (totals.at(-1)?.user_id === user_id) {
|
5
|
-
|
4
|
+
const last = totals.at(-1);
|
5
|
+
if (last?.user_id === user_id) {
|
6
6
|
last.A += A, last.B += B, last.C += C, last.sum += sum;
|
7
7
|
} else {
|
8
8
|
totals.push({ A, B, C, sum, user_id });
|
@@ -10,4 +10,4 @@
|
|
10
10
|
return totals;
|
11
11
|
}, []);
|
12
12
|
```
|
13
|
-
👉 https://codepen.io/su507/pen/E
|
13
|
+
👉 https://codepen.io/su507/pen/XWEjaMK?editors=0012
|
1
修正
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
質問のコード
|
1
|
+
質問のコードのように、`array` の要素が `user_id` の昇順に並んでいることを前提としてよいのであれば、以下です。
|
2
2
|
```javascript
|
3
3
|
const result = array.reduce((totals, { A, B, C, sum, user_id }) => {
|
4
|
-
if (totals.
|
4
|
+
if (totals.at(-1)?.user_id === user_id) {
|
5
5
|
const last = totals.at(-1);
|
6
6
|
last.A += A, last.B += B, last.C += C, last.sum += sum;
|
7
7
|
} else {
|