--- title: Farey sequence id: 59c3ec9f15068017c96eb8a3 challengeType: 5 --- ## Description

Write a function that returns the Farey sequence of order n. The function should have one parameter that is n. It should return the sequence as an array. Read the following for more details :

The Farey sequence Fn of order n is the sequence of completely reduced fractions between 0 and 1 which, when in lowest terms, have denominators less than or equal to n, arranged in order of increasing size.

The Farey sequence is sometimes incorrectly called a Farey series.

Each Farey sequence:

::* starts with the value 0, denoted by the fraction $ \frac{0}{1} $

::* ends with the value 1, denoted by the fraction $ \frac{1}{1}$.

The Farey sequences of orders 1 to 5 are:

${\bf\it{F}}_1 = \frac{0}{1}, \frac{1}{1}$

${\bf\it{F}}_2 = \frac{0}{1}, \frac{1}{2}, \frac{1}{1}$

${\bf\it{F}}_3 = \frac{0}{1}, \frac{1}{3}, \frac{1}{2}, \frac{2}{3}, \frac{1}{1}$

${\bf\it{F}}_4 = \frac{0}{1}, \frac{1}{4}, \frac{1}{3}, \frac{1}{2}, \frac{2}{3}, \frac{3}{4}, \frac{1}{1}$

${\bf\it{F}}_5 = \frac{0}{1}, \frac{1}{5}, \frac{1}{4}, \frac{1}{3}, \frac{2}{5}, \frac{1}{2}, \frac{3}{5}, \frac{2}{3}, \frac{3}{4}, \frac{4}{5}, \frac{1}{1}$

## Instructions
## Tests
```yml tests: - text: farey is a function. testString: 'assert(typeof farey === "function", "farey is a function.");' - text: farey(3) should return an array testString: 'assert(Array.isArray(farey(3)), "farey(3) should return an array");' - text: 'farey(3) should return ["1/3","1/2","2/3"]' testString: 'assert.deepEqual(farey(3), ["1/3","1/2","2/3"], "farey(3) should return ["1/3","1/2","2/3"]");' - text: 'farey(4) should return ["1/4","1/3","1/2","2/4","2/3","3/4"]' testString: 'assert.deepEqual(farey(4), ["1/4","1/3","1/2","2/4","2/3","3/4"], "farey(4) should return ["1/4","1/3","1/2","2/4","2/3","3/4"]");' - text: 'farey(5) should return ["1/5","1/4","1/3","2/5","1/2","2/4","3/5","2/3","3/4","4/5"]' testString: 'assert.deepEqual(farey(5), ["1/5","1/4","1/3","2/5","1/2","2/4","3/5","2/3","3/4","4/5"], "farey(5) should return ["1/5","1/4","1/3","2/5","1/2","2/4","3/5","2/3","3/4","4/5"]");' ```
## Challenge Seed
```js function farey (n) { // Good luck! } ```
## Solution
```js function farey(n){ let farSeq=[]; for(let den = 1; den <= n; den++){ for(let num = 1; num < den; num++){ farSeq.push({ str:num+"/"+den, val:num/den}); } } farSeq.sort(function(a,b){ return a.val-b.val; }); farSeq=farSeq.map(function(a){ return a.str; }); return farSeq; } ```