Add isBeforeDate, isAfterDate, isSameDate
This commit is contained in:
@ -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
|
||||||
```
|
```
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
13
snippets/isAfterDate.md
Normal 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
13
snippets/isBeforeDate.md
Normal 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
13
snippets/isSameDate.md
Normal 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
|
||||||
|
```
|
||||||
@ -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));
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|||||||
@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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
|
||||||
```
|
```
|
||||||
|
|||||||
@ -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
|
||||||
```
|
```
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user