Update median, build README
This commit is contained in:
15
README.md
15
README.md
@ -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.
|
||||
|
||||
@ -1,17 +1,13 @@
|
||||
### Median of array of numbers
|
||||
|
||||
Find the middle index of an array and sort the numbers in ascending order. If the length of the array is odd,
|
||||
return the number at the midpoint, otherwise return the average of the two middle 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 = numbers => {
|
||||
const midpoint = Math.floor(numbers.length / 2);
|
||||
const sorted = numbers.sort((a, b) => a - b);
|
||||
|
||||
return numbers.length % 2
|
||||
? sorted[midpoint]
|
||||
: (sorted[midpoint - 1] + sorted[midpoint]) / 2;
|
||||
};
|
||||
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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user