Update median, build README

This commit is contained in:
Angelos Chalaris
2017-12-13 11:47:51 +02:00
parent 8935a9125d
commit c905200acb
2 changed files with 21 additions and 10 deletions

View File

@@ -37,6 +37,7 @@
* [Initialize array with values](#initialize-array-with-values)
* [Last of list](#last-of-list)
* [Measure time taken by function](#measure-time-taken-by-function)
* [Median of array of numbers](#median-of-array-of-numbers)
* [Object from key value pairs](#object-from-key-value-pairs)
* [Pipe](#pipe)
* [Powerset](#powerset)
@@ -359,6 +360,20 @@ const timeTaken = (func,...args) => {
// timeTaken(Math.pow, 2, 10) -> 1024 (0.010000000009313226 logged in console)
```
### Median of array of numbers
Find the middle of the array, use `Array.sort()` to sort the values.
Return the number at the midpoint if `length` is odd, otherwise the average of the two middle numbers.
```js
const median = arr => {
const mid = Math.floor(arr.length / 2), nums = arr.sort((a,b) => a - b);
return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
}
// median([5,6,50,1,-5]) -> 5
// median([0,10,-2,7]) -> 3.5
```
### Object from key-value pairs
Use `Array.reduce()` to create and combine key-value pairs.