回答編集履歴
7
テキスト修正
answer
CHANGED
@@ -7,4 +7,22 @@
|
|
7
7
|
```javascript
|
8
8
|
const result = _.mapObject(arr, values => values.reduce((s, v) => s + v, 0))
|
9
9
|
```
|
10
|
-
- **動作確認用codepen:** [/jun68ykt/pen/XWdLvJx](https://codepen.io/jun68ykt/pen/XWdLvJx?editors=0012)
|
10
|
+
- **動作確認用codepen:** [/jun68ykt/pen/XWdLvJx](https://codepen.io/jun68ykt/pen/XWdLvJx?editors=0012)
|
11
|
+
|
12
|
+
## 追記
|
13
|
+
|
14
|
+
Underscore.jsを使わない案を追記します。このような場合、与えられるオブジェクトを
|
15
|
+
|
16
|
+
1. Object.entries で、キーと値の組の配列にして、
|
17
|
+
2. map で各プロパティの値に手を加え、
|
18
|
+
3. Object.fromEntries でオブジェクトに戻す。
|
19
|
+
|
20
|
+
という手順が、よく使う定跡かなと思います。以下は、この手順によるサンプルです。配列要素の合計を算出する関数`sum`をあらかじめ作っておき、map に与える関数が読みやすくなるようにしています。
|
21
|
+
|
22
|
+
```javascript
|
23
|
+
const sum = values => values.reduce((s, v) => s + v, 0)
|
24
|
+
|
25
|
+
const totals = Object.entries(arr).map(([k, values]) => [k, sum(values)])
|
26
|
+
const result = Object.fromEntries(totals);
|
27
|
+
```
|
28
|
+
- **動作確認用codepen:** [/jun68ykt/pen/LYNKwMG](https://codepen.io/jun68ykt/pen/LYNKwMG?editors=0012)
|
6
テキスト修正
answer
CHANGED
@@ -5,6 +5,6 @@
|
|
5
5
|
ということであれば、Underscore.jsの[_.mapObject](https://underscorejs.org/#mapObject) を使って、以下のようにするとよいかと思います。
|
6
6
|
|
7
7
|
```javascript
|
8
|
-
const result = _.mapObject(arr,
|
8
|
+
const result = _.mapObject(arr, values => values.reduce((s, v) => s + v, 0))
|
9
9
|
```
|
10
10
|
- **動作確認用codepen:** [/jun68ykt/pen/XWdLvJx](https://codepen.io/jun68ykt/pen/XWdLvJx?editors=0012)
|
5
テキスト修正
answer
CHANGED
@@ -5,6 +5,6 @@
|
|
5
5
|
ということであれば、Underscore.jsの[_.mapObject](https://underscorejs.org/#mapObject) を使って、以下のようにするとよいかと思います。
|
6
6
|
|
7
7
|
```javascript
|
8
|
-
const result = _.mapObject(arr, v => v.reduce((sum, e) => sum + e))
|
8
|
+
const result = _.mapObject(arr, v => v.reduce((sum, e) => sum + e, 0))
|
9
9
|
```
|
10
10
|
- **動作確認用codepen:** [/jun68ykt/pen/XWdLvJx](https://codepen.io/jun68ykt/pen/XWdLvJx?editors=0012)
|
4
テキスト修正
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
こんにちは
|
2
2
|
|
3
|
-
> Underscore.js
|
3
|
+
> Underscore.jsで、あるオブジェクトの値に対してreduceを適用させたいです。
|
4
4
|
|
5
|
-
の[_.mapObject](https://underscorejs.org/#mapObject) を使って、以下のようにするとよいかと思います。
|
5
|
+
ということであれば、Underscore.jsの[_.mapObject](https://underscorejs.org/#mapObject) を使って、以下のようにするとよいかと思います。
|
6
6
|
|
7
7
|
```javascript
|
8
8
|
const result = _.mapObject(arr, v => v.reduce((sum, e) => sum + e))
|
3
テキスト修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
> Underscore.js
|
4
4
|
|
5
|
-
|
5
|
+
の[_.mapObject](https://underscorejs.org/#mapObject) を使って、以下のようにするとよいかと思います。
|
6
6
|
|
7
7
|
```javascript
|
8
8
|
const result = _.mapObject(arr, v => v.reduce((sum, e) => sum + e))
|
2
テキスト修正
answer
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
こんにちは
|
2
2
|
|
3
|
-
ご質問のタイトルにある reduce は使いませんが、
|
4
|
-
|
5
3
|
> Underscore.js
|
6
4
|
|
7
|
-
|
8
5
|
を使えるのであれば、[_.mapObject](https://underscorejs.org/#mapObject) で、以下のようにするとよいかと思います。
|
9
6
|
|
10
7
|
```javascript
|
1
テキスト修正
answer
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
こんにちは
|
2
2
|
|
3
|
-
|
3
|
+
ご質問のタイトルにある reduce は使いませんが、
|
4
4
|
|
5
|
+
> Underscore.js
|
6
|
+
|
7
|
+
|
8
|
+
を使えるのであれば、[_.mapObject](https://underscorejs.org/#mapObject) で、以下のようにするとよいかと思います。
|
9
|
+
|
5
10
|
```javascript
|
6
11
|
const result = _.mapObject(arr, v => v.reduce((sum, e) => sum + e))
|
7
12
|
```
|