---
id: 68b7687dded630607aceccaf
title: "Challenge 47: Caught Speeding"
challengeType: 28
dashedName: challenge-47
---

# --description--

Given an array of numbers representing the speed at which vehicles were observed traveling, and a number representing the speed limit, return an array with two items, the number of vehicles that were speeding, followed by the average amount beyond the speed limit of those vehicles.

- If there were no vehicles speeding, return `[0, 0]`.

# --hints--

`speeding([50, 60, 55], 60)` should return `[0, 0]`.

```js
assert.deepEqual(speeding([50, 60, 55], 60), [0, 0]);
```

`speeding([58, 50, 60, 55], 55)` should return `[2, 4]`.

```js
assert.deepEqual(speeding([58, 50, 60, 55], 55), [2, 4]);
```

`speeding([61, 81, 74, 88, 65, 71, 68], 70)` should return `[4, 8.5]`.

```js
assert.deepEqual(speeding([61, 81, 74, 88, 65, 71, 68], 70), [4, 8.5]);
```

`speeding([100, 105, 95, 102], 100)` should return `[2, 3.5]`.

```js
assert.deepEqual(speeding([100, 105, 95, 102], 100), [2, 3.5]);
```

`speeding([40, 45, 44, 50, 112, 39], 55)` should return `[1, 57]`.

```js
assert.deepEqual(speeding([40, 45, 44, 50, 112, 39], 55), [1, 57]);
```

# --seed--

## --seed-contents--

```js
function speeding(speeds, limit) {

  return speeds;
}
```

# --solutions--

```js
function speeding(speeds, limit) {
  let speeding = 0;
  let totalOver = 0;

  for (let speed of speeds) {
    if (speed > limit) {
      speeding++;
      totalOver += (speed - limit);
    }
  }

  if (speeding === 0) return [0, 0];

  return [speeding, totalOver / speeding];
}
```
