Add isBeforeDate, isAfterDate, isSameDate

This commit is contained in:
Angelos Chalaris
2018-09-29 13:58:38 +03:00
parent bd04a9e9ac
commit 08509a2aed
15 changed files with 55 additions and 17 deletions

View File

@ -12,9 +12,6 @@ const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
```js ```js
const add5 = x => x + 5; const add5 = x => x + 5;
const multiply = (x, y) => x * y; const multiply = (x, y) => x * y;
const multiplyAndAdd5 = compose( const multiplyAndAdd5 = compose(add5, multiply);
add5,
multiply
);
multiplyAndAdd5(5, 2); // 15 multiplyAndAdd5(5, 2); // 15
``` ```

View File

@ -6,9 +6,8 @@ Use `new Date()` and `Date.prototype.getFullYear()` to get the first day of the
Use `Math.floor()` to appropriately round the resulting day count to an integer. Use `Math.floor()` to appropriately round the resulting day count to an integer.
```js ```js
const dayOfYear = date => Math.floor( const dayOfYear = date =>
(date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24 Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
);
``` ```
```js ```js

View File

@ -5,7 +5,7 @@ Converts an angle from degrees to radians.
Use `Math.PI` and the degree to radian formula to convert the angle from degrees to radians. Use `Math.PI` and the degree to radian formula to convert the angle from degrees to radians.
```js ```js
const degreesToRads = deg => (deg * Math.PI) / 180.0; const degreesToRads = deg => deg * Math.PI / 180.0;
``` ```
```js ```js

View File

@ -11,8 +11,8 @@ const getMeridiemSuffixOfInteger = num =>
: num === 12 : num === 12
? 12 + 'pm' ? 12 + 'pm'
: num < 12 : num < 12
? (num % 12) + 'am' ? num % 12 + 'am'
: (num % 12) + 'pm'; : num % 12 + 'pm';
``` ```
```js ```js

View File

@ -11,7 +11,7 @@ Omit the second argument, `iterations`, to use the default of 100 iterations.
const hz = (fn, iterations = 100) => { const hz = (fn, iterations = 100) => {
const before = performance.now(); const before = performance.now();
for (let i = 0; i < iterations; i++) fn(); for (let i = 0; i < iterations; i++) fn();
return (1000 * iterations) / (performance.now() - before); return 1000 * iterations / (performance.now() - before);
}; };
``` ```

13
snippets/isAfterDate.md Normal file
View File

@ -0,0 +1,13 @@
### isAfterDate
Check if a date is after another date.
Use the greater than operator (`>`) to check if the first date comes after the second one.
```js
const isAfterDate = (dateA, dateB) => dateA > dateB;
```
```js
isAfterDate(new Date(2010, 10, 21), new Date(2010, 10, 20)); // true
```

13
snippets/isBeforeDate.md Normal file
View File

@ -0,0 +1,13 @@
### isBeforeDate
Check if a date is before another date.
Use the less than operator (`<`) to check if the first date comes before the second one.
```js
const isBeforeDate = (dateA, dateB) => dateA < dateB;
```
```js
isBeforeDate(new Date(2010, 10, 20), new Date(2010, 10, 21)); // true
```

13
snippets/isSameDate.md Normal file
View File

@ -0,0 +1,13 @@
### isSameDate
Check if a date is the same as another date.
Use strict equality checking (`===`) to check if the first date is the same as the second one.
```js
const isSameDate = (dateA, dateB) => dateA === dateB;
```
```js
isSameDate(new Date(2010, 10, 20), new Date(2010, 10, 20)); // true
```

View File

@ -8,7 +8,7 @@ The GCD formula uses recursion.
```js ```js
const lcm = (...arr) => { const lcm = (...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));
}; };
``` ```

View File

@ -15,7 +15,7 @@ const luhnCheck = num => {
.reverse() .reverse()
.map(x => parseInt(x)); .map(x => parseInt(x));
let lastDigit = arr.splice(0, 1)[0]; let lastDigit = arr.splice(0, 1)[0];
let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0); let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2) % 9 || 9), 0);
sum += lastDigit; sum += lastDigit;
return sum % 10 === 0; return sum % 10 === 0;
}; };

View File

@ -13,7 +13,7 @@ const array = [
new Date(2017, 4, 13), new Date(2017, 4, 13),
new Date(2018, 2, 12), new Date(2018, 2, 12),
new Date(2016, 0, 10), new Date(2016, 0, 10),
new Date(2016, 0, 9), new Date(2016, 0, 9)
]; ];
maxDate(array); // 2018-03-11T22:00:00.000Z maxDate(array); // 2018-03-11T22:00:00.000Z
``` ```

View File

@ -13,7 +13,7 @@ const array = [
new Date(2017, 4, 13), new Date(2017, 4, 13),
new Date(2018, 2, 12), new Date(2018, 2, 12),
new Date(2016, 0, 10), new Date(2016, 0, 10),
new Date(2016, 0, 9), new Date(2016, 0, 9)
]; ];
minDate(array); // 2016-01-08T22:00:00.000Z minDate(array); // 2016-01-08T22:00:00.000Z
``` ```

View File

@ -6,7 +6,7 @@ Use `Array.prototype.reduce()` to calculate how many numbers are below the value
```js ```js
const percentile = (arr, val) => const percentile = (arr, val) =>
(100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0)) / arr.length; 100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0) / arr.length;
``` ```
```js ```js

View File

@ -5,7 +5,7 @@ Converts an angle from radians to degrees.
Use `Math.PI` and the radian to degree formula to convert the angle from radians to degrees. Use `Math.PI` and the radian to degree formula to convert the angle from radians to degrees.
```js ```js
const radsToDegrees = rad => (rad * 180.0) / Math.PI; const radsToDegrees = rad => rad * 180.0 / Math.PI;
``` ```
```js ```js

View File

@ -131,8 +131,10 @@ intersectionWith:array,function,intermediate
invertKeyValues:object,function,intermediate invertKeyValues:object,function,intermediate
is:type,array,regexp,beginner is:type,array,regexp,beginner
isAbsoluteURL:string,utility,browser,url,intermediate isAbsoluteURL:string,utility,browser,url,intermediate
isAfterDate:date,utility,beginner
isAnagram:string,regexp,intermediate isAnagram:string,regexp,intermediate
isArrayLike:type,array,intermediate isArrayLike:type,array,intermediate
isBeforeDate:date,utility,beginner
isBoolean:type,beginner isBoolean:type,beginner
isBrowser:utility,browser,intermediate isBrowser:utility,browser,intermediate
isBrowserTabFocused:browser,beginner isBrowserTabFocused:browser,beginner
@ -150,6 +152,7 @@ isPlainObject:type,object,intermediate
isPrime:math,beginner,intermediate isPrime:math,beginner,intermediate
isPrimitive:type,function,array,string,intermediate isPrimitive:type,function,array,string,intermediate
isPromiseLike:type,function,promise,intermediate isPromiseLike:type,function,promise,intermediate
isSameDate:date,utility,beginner
isSorted:array,intermediate isSorted:array,intermediate
isString:type,string,beginner isString:type,string,beginner
isSymbol:type,beginner isSymbol:type,beginner