lodash自分用メモ Math

lodashのArrayとCollectionをやってしばらく力尽きていましたが、また復活しようと思いました。lodashを使いたい時、何気に自分のQiitaの記事が役立つことがあったりしたからです。

## Math

### `_.add`

```javascript
_.add(augend, addend)
```

引数に渡した2つの数字を足し合わせる

```javascript
_.add(2, 3) // 5
// ↑ 3つ以上の引数は渡せない
```

### `_.ceil`

```javascript
_.ceil(number, [precision=0])
```

小数点を指定して、切り上げる
（[Math.ceil()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil)）と一緒

```javascript
_.ceil(3.14) // 4

_.ceil(3.1415, 2) // 3.15

_.ceil(31415, -2) // 31500
```


### `_.divide`

```javascript
_.divide(dividend, divisor)
```

左の数を右の数で割り算する

```javascript
_.divide(100, 5) // 20

_.divide(100, 9) // 11.11111111111111
```

### `_.floor`

```javascript
_.floor(number, [precision=0])
```

小数点を指定して、数字を切り捨て。
`_.ceil`に似ている。

```javascript
_.floor(4.006) // 4

_.floor(3.14159, 2) // 3.14

_.floor(314159, -2) // 314100
```

### `_.max`

```javascript
_.max(array)
```

渡した配列の中から最大値を抽出してくれる。
空配列の場合は`undefined`が返る。

```javascript
_.max([4, 2, 8, 6]) // 8

_.max([]) // undefined
```

### `_.maxBy`

```javascript
_.maxBy(array, [iteratee=_.identity])
```

`_.max`と機能は似ているが、`iteratee`を受け入れるところだけ異なる。
オブジェクトのプロパティを指定して集計することができる。

```javascript
const pokemon = [
  {
    "name": "ピカチュウ",
    "level": 30,
  },
  {
    "name": "ヒトカゲ",
    "level": 26,
  },
  {
    "name": "ゼニガメ",
    "level": 29,
  },
  {
    "name": "フシギダネ",
    "level": 27,
  },
]

_.maxBy(pokemon, "level") // {"name":"ピカチュウ","level":30}
```

### `_.mean`

```javascript
_.mean(array)
```

配列内の数字の平均を出す。

```javascript
_.mean([4, 2, 8, 6]) // 5

_.mean([10, 5, 6, 6, 8]) // 7
```

### `_.meanBy`

```javascript
_.meanBy(array, [iteratee=_.identity])
```

`_.mean`と機能は似ているが、`iteratee`を受け入れるところだけ異なる。
オブジェクトのプロパティを指定して集計することができる。

```javascript
const pokemon = [
  {
    "name": "ピカチュウ",
    "level": 30,
  },
  {
    "name": "ヒトカゲ",
    "level": 26,
  },
  {
    "name": "ゼニガメ",
    "level": 29,
  },
  {
    "name": "フシギダネ",
    "level": 27,
  },
]

_.meanBy(pokemon, "level") // 28
```

### `_.min`

```javascript
_.min(array)
```

配列の数字の中から最小値を抽出する。
空配列の場合は`undefined`を返す。

```javascript
_.min([4, 2, 8, 6]) // 2

_.min([]) // undefined
```

### `_.minBy`

```javascript
_.minBy(array, [iteratee=_.identity])
```

`_.min`と機能は似ているが、`iteratee`を受け入れるところだけ異なる。
オブジェクトのプロパティを指定して集計することができる。

```javascript
const pokemon = [
  {
    "name": "ピカチュウ",
    "level": 30,
  },
  {
    "name": "ヒトカゲ",
    "level": 26,
  },
  {
    "name": "ゼニガメ",
    "level": 29,
  },
  {
    "name": "フシギダネ",
    "level": 27,
  },
]

_.minBy(pokemon, "level") // { "name": "ヒトカゲ", "level": 26 }
```

### `_.multiply`

```javascript
_.multiply(multiplier, multiplicand)
```

渡した2つの数字の掛け算をする。

```javascript
_.multiply(6, 4) // 24

_.multiply(3, 4, 5, 6, 7) // 12（3つ以上は渡せない）
```

### `_.round`

```javascript
_.round(number, [precision=0])
```

小数点を指定して、数字の四捨五入をする

```javascript
_.round(3.14159) // 3

_.round(3.14159, 2) // 3.14

_.round(314159, -2) // 314200
```

### `_.subtract`

```javascript
_.subtract(minuend, subtrahend)
```

左の数から右の数を引き算する。

```javascript
_.subtract(6, 4) // 2

_.subtract(100, 40) // 60
```

### `_.sum`

```javascript
_.sum(array)
```

配列の数字の合計を出す。

```javascript
_.sum([4, 2, 8, 6]) // 20
```

### `_.sumBy`

```javascript
_.sumBy(array, [iteratee=_.identity])
```

`_.sum`と機能は似ているが、`iteratee`を受け入れるところだけ異なる。
オブジェクトのプロパティを指定して集計することができる。

```javascript
const pokemon = [
  {
    "name": "ピカチュウ",
    "level": 30,
  },
  {
    "name": "ヒトカゲ",
    "level": 26,
  },
  {
    "name": "ゼニガメ",
    "level": 29,
  },
  {
    "name": "フシギダネ",
    "level": 27,
  },
]

_.sumBy(pokemon, "level") // 112
```


## 終わりに
久しぶりにlodashの自分用メモを作成しましたが、Mathを選んだのは、提供されている関数が他と比べて少なかったからです！
次はObjectあたりチャレンジします。。