Travis build: 69

This commit is contained in:
Pl4gue
2017-12-21 22:33:38 +00:00
parent 0b90492a41
commit ac1a10f039
2 changed files with 23 additions and 24 deletions

View File

@ -184,7 +184,7 @@ Use `Array.reduce()` and the `lcm` formula (uses recursion) to calculate the low
```js ```js
const arrayLcm = arr =>{ const arrayLcm = arr =>{
const gcd = (x, y) => !y ? x : gcd(y, x % y); const gcd = (x, y) => !y ? x : gcd(y, x % y);
const lcm = (x, y) => (x*y)/gcd(x, y) const lcm = (x, y) => (x*y)/gcd(x, y)
return arr.reduce((a,b) => lcm(a,b)); return arr.reduce((a,b) => lcm(a,b));
} }
// arrayLcm([1,2,3,4,5]) -> 60 // arrayLcm([1,2,3,4,5]) -> 60
@ -468,7 +468,7 @@ Use `Array((end + 1) - start)` to create an array of the desired length, `Array.
You can omit `start` to use a default value of `0`. You can omit `start` to use a default value of `0`.
```js ```js
const initializeArrayWithRange = (end, start = 0) => const initializeArrayWithRange = (end, start = 0) =>
Array.from({ length: (end + 1) - start }).map((v, i) => i + start); Array.from({ length: (end + 1) - start }).map((v, i) => i + start);
// initializeArrayWithRange(5) -> [0,1,2,3,4,5] // initializeArrayWithRange(5) -> [0,1,2,3,4,5]
// initializeArrayWithRange(7, 3) -> [3,4,5,6,7] // initializeArrayWithRange(7, 3) -> [3,4,5,6,7]
@ -523,7 +523,7 @@ Maps the values of an array to an object using a function, where the key-value p
Use an anonymous inner function scope to declare an undefined memory space, using closures to store a return value. Use a new `Array` to stor the array with a map of the function over its data set and a comma operator to return a second step, without needing to move from one context to another (due to closures and order of operations). Use an anonymous inner function scope to declare an undefined memory space, using closures to store a return value. Use a new `Array` to stor the array with a map of the function over its data set and a comma operator to return a second step, without needing to move from one context to another (due to closures and order of operations).
```js ```js
const mapObject = (arr, fn) => const mapObject = (arr, fn) =>
(a => (a = [arr, arr.map(fn)], a[0].reduce( (acc,val,ind) => (acc[val] = a[1][ind], acc), {}) )) ( ); (a => (a = [arr, arr.map(fn)], a[0].reduce( (acc,val,ind) => (acc[val] = a[1][ind], acc), {}) )) ( );
/* /*
const squareIt = arr => mapObject(arr, a => a*a) const squareIt = arr => mapObject(arr, a => a*a)
@ -576,7 +576,7 @@ _(For a snippet that does not mutate the original array see [`without`](#without
const pull = (arr, ...args) => { const pull = (arr, ...args) => {
let argState = Array.isArray(args[0]) ? args[0] : args; let argState = Array.isArray(args[0]) ? args[0] : args;
let pulled = arr.filter((v, i) => !argState.includes(v)); let pulled = arr.filter((v, i) => !argState.includes(v));
arr.length = 0; arr.length = 0;
pulled.forEach(v => arr.push(v)); pulled.forEach(v => arr.push(v));
}; };
@ -597,14 +597,14 @@ Mutates the original array to filter out the values at the specified indexes.
Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed. Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed.
Use `Array.length = 0` to mutate the passed in array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values. Use `Array.length = 0` to mutate the passed in array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values.
Use `Array.push()` to keep track of pulled values Use `Array.push()` to keep track of pulled values
```js ```js
const pullAtIndex = (arr, pullArr) => { const pullAtIndex = (arr, pullArr) => {
let removed = []; let removed = [];
let pulled = arr.map((v, i) => pullArr.includes(i) ? removed.push(v) : v) let pulled = arr.map((v, i) => pullArr.includes(i) ? removed.push(v) : v)
.filter((v, i) => !pullArr.includes(i)) .filter((v, i) => !pullArr.includes(i))
arr.length = 0; arr.length = 0;
pulled.forEach(v => arr.push(v)); pulled.forEach(v => arr.push(v));
return removed; return removed;
} }
@ -624,11 +624,11 @@ Mutates the original array to filter out the values specified. Returns the remov
Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed. Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed.
Use `Array.length = 0` to mutate the passed in array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values. Use `Array.length = 0` to mutate the passed in array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values.
Use `Array.push()` to keep track of pulled values Use `Array.push()` to keep track of pulled values
```js ```js
const pullAtValue = (arr, pullArr) => { const pullAtValue = (arr, pullArr) => {
let removed = [], let removed = [],
pushToRemove = arr.forEach((v, i) => pullArr.includes(v) ? removed.push(v) : v), pushToRemove = arr.forEach((v, i) => pullArr.includes(v) ? removed.push(v) : v),
mutateTo = arr.filter((v, i) => !pullArr.includes(v)); mutateTo = arr.filter((v, i) => !pullArr.includes(v));
arr.length = 0; arr.length = 0;
@ -1193,14 +1193,14 @@ const arraySum = arr => arr.reduce((acc, val) => acc + val, 0);
Clamps `num` within the inclusive `lower` and `upper` bounds. Clamps `num` within the inclusive `lower` and `upper` bounds.
If `lower` is greater than `upper`, swap them. If `lower` is greater than `upper`, swap them.
If `num` falls within the range, return `num`. If `num` falls within the range, return `num`.
Otherwise return the nearest number in the range. Otherwise return the nearest number in the range.
```js ```js
const clampNumber = (num, lower, upper) => { const clampNumber = (num, lower, upper) => {
if(lower > upper) upper = [lower, lower = upper][0]; if(lower > upper) upper = [lower, lower = upper][0];
return (num>=lower && num<=upper) ? num : ((num < lower) ? lower : upper) return (num>=lower && num<=upper) ? num : ((num < lower) ? lower : upper)
} }
// clampNumber(2, 3, 5) -> 3 // clampNumber(2, 3, 5) -> 3
// clampNumber(1, -1, -5) -> -1 // clampNumber(1, -1, -5) -> -1
@ -1315,7 +1315,7 @@ const hammingDistance = (num1, num2) =>
### inRange ### inRange
Checks if the given number falls in the given range. Checks if the given number falls in the given range.
Use arithmetic comparison to check if the given number is in the specified range. Use arithmetic comparison to check if the given number is in the specified range.
If the second parameter, `end`, is not specified, the reange is considered to be from `0` to `start`. If the second parameter, `end`, is not specified, the reange is considered to be from `0` to `start`.
@ -1340,7 +1340,7 @@ Checks if the given number is an armstrong number or not.
Convert the given number into array of digits. Use `Math.pow()` to get the appropriate power for each digit and sum them up. If the sum is equal to the number itself, return `true` otherwise `false`. Convert the given number into array of digits. Use `Math.pow()` to get the appropriate power for each digit and sum them up. If the sum is equal to the number itself, return `true` otherwise `false`.
```js ```js
const isArmstrongNumber = digits => const isArmstrongNumber = digits =>
( arr => arr.reduce( ( a, d ) => a + Math.pow( parseInt( d ), arr.length ), 0 ) == digits ? true : false )( ( digits+'' ).split( '' ) ); ( arr => arr.reduce( ( a, d ) => a + Math.pow( parseInt( d ), arr.length ), 0 ) == digits ? true : false )( ( digits+'' ).split( '' ) );
// isArmstrongNumber(1634) -> true // isArmstrongNumber(1634) -> true
// isArmstrongNumber(371) -> true // isArmstrongNumber(371) -> true
@ -1386,10 +1386,9 @@ Returns `false` if the provided number has positive divisors other than 1 and it
const isPrime = num => { const isPrime = num => {
for (var i = 2; i * i <= num; i++) if (num % i == 0) return false; for (var i = 2; i * i <= num; i++) if (num % i == 0) return false;
return num >= 2; return num >= 2;
} };
// isPrime(11) -> true // isPrime(11) -> true
// isPrime(12) -> false // isPrime(12) -> false
// isPrime(1) -> false
``` ```
[⬆ back to top](#table-of-contents) [⬆ back to top](#table-of-contents)
@ -1474,7 +1473,7 @@ const powerset = arr =>
[⬆ back to top](#table-of-contents) [⬆ back to top](#table-of-contents)
### primes ### primes
Generates primes up to a given number, using the Sieve of Eratosthenes. Generates primes up to a given number, using the Sieve of Eratosthenes.
@ -1482,13 +1481,13 @@ Generate an array from `2` to the given number. Use `Array.filter()` to filter o
```js ```js
const primes = num => { const primes = num => {
let arr = Array.from({length:num-1}).map((x,i)=> i+2), let arr = Array.from({length:num-1}).map((x,i)=> i+2),
sqroot = Math.floor(Math.sqrt(num)), sqroot = Math.floor(Math.sqrt(num)),
numsTillSqroot = Array.from({length:sqroot-1}).map((x,i)=> i+2); numsTillSqroot = Array.from({length:sqroot-1}).map((x,i)=> i+2);
numsTillSqroot.forEach(x => arr = arr.filter(y => ((y%x)!==0)||(y==x))); numsTillSqroot.forEach(x => arr = arr.filter(y => ((y%x)!==0)||(y==x)));
return arr; return arr;
} }
// primes(10) -> [2,3,5,7] // primes(10) -> [2,3,5,7]
``` ```
[⬆ back to top](#table-of-contents) [⬆ back to top](#table-of-contents)
@ -1735,7 +1734,7 @@ a === b -> false
Checks if the predicate (second argument) is truthy on all elements of a collection (first argument). Checks if the predicate (second argument) is truthy on all elements of a collection (first argument).
Use `Array.every()` to check if each passed object has the specified property and if it returns a truthy value. Use `Array.every()` to check if each passed object has the specified property and if it returns a truthy value.
```js ```js
const truthCheckCollection = (collection, pre) => (collection.every(obj => obj[pre])); const truthCheckCollection = (collection, pre) => (collection.every(obj => obj[pre]));
// truthCheckCollection([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}], "sex") -> true // truthCheckCollection([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}], "sex") -> true
@ -2118,7 +2117,7 @@ Use `toString()` to convert the float `num` to a string, then use regex to separ
```js ```js
const toDecimalMark = (num) => { const toDecimalMark = (num) => {
let cleanNum = num.toString().split('').filter(n => '0123456789.'.includes(n)).join('') let cleanNum = num.toString().split('').filter(n => '0123456789.'.includes(n)).join('')
let wholeNum = cleanNum.split('.')[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",") let wholeNum = cleanNum.split('.')[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",")
let decNum = `.${cleanNum.split('.')[1]}` let decNum = `.${cleanNum.split('.')[1]}`
return wholeNum + decNum; return wholeNum + decNum;
@ -2184,3 +2183,4 @@ const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) ==
## Credits ## Credits
*Icons made by [Smashicons](https://www.flaticon.com/authors/smashicons) from [www.flaticon.com](https://www.flaticon.com/) is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/).* *Icons made by [Smashicons](https://www.flaticon.com/authors/smashicons) from [www.flaticon.com](https://www.flaticon.com/) is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/).*

View File

@ -868,12 +868,11 @@ Returns <code>true</code> if the number is even, <code>false</code> if the numbe
<p>Checks if the provided integer is a prime number.</p> <p>Checks if the provided integer is a prime number.</p>
<p>Returns <code>false</code> if the provided number has positive divisors other than 1 and itself or if the number itself is less than 2.</p> <p>Returns <code>false</code> if the provided number has positive divisors other than 1 and itself or if the number itself is less than 2.</p>
<pre><code class="language-js">const isPrime = num =&gt; { <pre><code class="language-js">const isPrime = num =&gt; {
for (var i = 2; i &lt; num; i++) if (num % i == 0) return false; for (var i = 2; i * i &lt;= num; i++) if (num % i == 0) return false;
return num &gt;= 2; return num &gt;= 2;
} };
// isPrime(11) -&gt; true // isPrime(11) -&gt; true
// isPrime(12) -&gt; false // isPrime(12) -&gt; false
// isPrime(1) -&gt; false
</code></pre> </code></pre>
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="lcm">lcm</h3></div><div class="section double-padded"> </div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="lcm">lcm</h3></div><div class="section double-padded">
<p>Returns the least common multiple of two numbers.</p> <p>Returns the least common multiple of two numbers.</p>