# arrayOf

Takes a **validator** and returns a new function that makes sure the received **array** matches the defined validator for each one if its elements.

```javascript
import arrayOf from 'deep-waters/arrayOf';
import isNumber from 'deep-waters/isNumber';
import isString from 'deep-waters/isString';

// array of numbers only
const arrayOfNumbers = arrayOf(isNumber); 

arrayOfNumbers([1, 2, 3, 4]); // → true;
arrayOfNumbers(['s', 't,' 'r', 'i', 'n', 'g']); // → false;

// array of multiple types
const numAndStrings = arrayOf(or(isNumber, isString));

numAndStrings([1, 2, 3, 4, 'can I have a little more?']); // → true;
```

{% hint style="info" %}
**arrayOf** is actually a semantic shortcut to [every](https://antonioru.gitbook.io/deep-waters/validators/every)
{% endhint %}

#### Related validators

{% content-ref url="every" %}
[every](https://antonioru.gitbook.io/deep-waters/validators/every)
{% endcontent-ref %}

{% content-ref url="arrayofshape" %}
[arrayofshape](https://antonioru.gitbook.io/deep-waters/validators/arrayofshape)
{% endcontent-ref %}
