From 54a6caee59f989e49680257cc2d6e171acdf4868 Mon Sep 17 00:00:00 2001 From: 30secondsofcode <30secondsofcode@gmail.com> Date: Thu, 4 Jan 2018 09:58:08 +0000 Subject: [PATCH] Travis build: 1017 --- README.md | 158 ++++++++++++++++++++++++------------------------ docs/index.html | 66 ++++++++++---------- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/README.md b/README.md index 6872d8038..13cd4ac68 100644 --- a/README.md +++ b/README.md @@ -170,6 +170,7 @@ average(1, 2, 3);
View contents +* [`formatDuration`](#formatduration) * [`getDaysDiffBetweenDates`](#getdaysdiffbetweendates) * [`JSONToDate`](#jsontodate) * [`toEnglishDate`](#toenglishdate) @@ -229,6 +230,7 @@ average(1, 2, 3); * [`isEven`](#iseven) * [`isPrime`](#isprime) * [`lcm`](#lcm) +* [`luhnCheck`](#luhncheck) * [`median`](#median) * [`percentile`](#percentile) * [`powerset`](#powerset) @@ -340,16 +342,6 @@ average(1, 2, 3);
-### _Uncategorized_ - -
-View contents - -* [`formatDuration`](#formatduration) -* [`luhnCheck`](#luhncheck) - -
- --- ## 🔌 Adapter @@ -2305,6 +2297,46 @@ UUIDGeneratorBrowser(); // '7982fcfe-5721-4632-bede-6000885be57d' --- ## ⏱️ Date +### formatDuration + +Returns the human readable format of the given number of milliseconds. + +Divide `ms` with the appropriate values to obtain the appropriate values for `day`, `hour`, `minute`, `second` and `millisecond`. +Use `Object.entries()` with `Array.filter()` to keep only non-zero values. +Use `Array.map()` to create the string for each value, pluralizing appropriately. +Use `String.join(', ')` to combine the values into a string. + +```js +const formatDuration = ms => { + if (ms < 0) ms = -ms; + const time = { + day: Math.floor(ms / 86400000), + hour: Math.floor(ms / 3600000) % 24, + minute: Math.floor(ms / 60000) % 60, + second: Math.floor(ms / 1000) % 60, + millisecond: Math.floor(ms) % 1000 + }; + return Object.entries(time) + .filter(val => val[1] !== 0) + .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0])) + .join(', '); +}; +``` + +
+Examples + +```js +formatDuration(1001); // "1 second, 1 millisecond" +formatDuration(343250555); // "3 days, 23 hours, 20 minutes, 50 seconds, 555 milliseconds" +formatDuration(34325055574); // "397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds" +``` + +
+ +
[⬆ Back to top](#table-of-contents) + + ### getDaysDiffBetweenDates Returns the difference (in days) between two dates. @@ -3284,6 +3316,43 @@ lcm([1, 3, 4], 5); // 60
[⬆ Back to top](#table-of-contents) +### luhnCheck + +Implementation of the [Luhn Algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm) used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers etc. + +Use `String.split('')`, `Array.reverse()` and `Array.map()` in combination with `parseInt()` to obtain an array of digits. +Use `Array.splice(0,1)` to obtain the last digit. +Use `Array.reduce()` to implement the Luhn Algorithm. +Return `true` if `sum` is divisible by `10`, `false` otherwise. + + +```js +const luhnCheck = num => { + let arr = (num + '') + .split('') + .reverse() + .map(x => parseInt(x)); + 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); + sum += lastDigit; + return sum % 10 === 0; +}; +``` + +
+Examples + +```js +luhnCheck('4485275742308327'); // true +luhnCheck(6011329933655299); // true +luhnCheck(123456789); // false +``` + +
+ +
[⬆ Back to top](#table-of-contents) + + ### median Returns the median of an array of numbers. @@ -5368,75 +5437,6 @@ yesNo('Foo', true); // true
[⬆ Back to top](#table-of-contents) ---- - ## _Uncategorized_ - -### formatDuration - -Returns the human readable format of the given number of milliseconds. - -Divide `ms` with the appropriate values to obtain the appropriate values for `day`, `hour`, `minute`, `second` and `millisecond`. -Use `Object.entries()` with `Array.filter()` to keep only non-zero values. -Use `Array.map()` to create the string for each value, pluralizing appropriately. -Use `String.join(', ')` to combine the values into a string. - -```js -const formatDuration = ms => { - if (ms < 0) ms = -ms; - const time = { - day: Math.floor(ms / 86400000), - hour: Math.floor(ms / 3600000) % 24, - minute: Math.floor(ms / 60000) % 60, - second: Math.floor(ms / 1000) % 60, - millisecond: Math.floor(ms) % 1000 - }; - return Object.entries(time) - .filter(val => val[1] !== 0) - .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0])) - .join(', '); -}; -``` - -```js -formatDuration(1001); // "1 second, 1 millisecond" -formatDuration(343250555); // "3 days, 23 hours, 20 minutes, 50 seconds, 555 milliseconds" -formatDuration(34325055574); // "397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds" -``` - -
[⬆ back to top](#table-of-contents) - - -### luhnCheck - -Implementation of the [Luhn Algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm) used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers etc. - -Use `String.split('')`, `Array.reverse()` and `Array.map()` in combination with `parseInt()` to obtain an array of digits. -Use `Array.splice(0,1)` to obtain the last digit. -Use `Array.reduce()` to implement the Luhn Algorithm. -Return `true` if `sum` is divisible by `10`, `false` otherwise. - - -```js -const luhnCheck = num => { - let arr = (num + '') - .split('') - .reverse() - .map(x => parseInt(x)); - 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); - sum += lastDigit; - return sum % 10 === 0; -}; -``` - -```js -luhnCheck('4485275742308327'); // true -luhnCheck(6011329933655299); // true -luhnCheck(123456789); // false -``` - -
[⬆ back to top](#table-of-contents) - ## Collaborators diff --git a/docs/index.html b/docs/index.html index 59a2c54a8..9ade1490e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -33,7 +33,7 @@ document.body.removeChild(textArea); } }, false); - }

logo 30 seconds of code Curated collection of useful JavaScript snippets that you can understand in 30 seconds or less.

 

Adapter

call

Given a key and a set of arguments, call them when given a context. Primarily useful in composition.

Use a closure to call a stored key with stored arguments.

const call = (key, ...args) => context => context[key](...args);
+      }

logo 30 seconds of code Curated collection of useful JavaScript snippets that you can understand in 30 seconds or less.

 

Adapter

call

Given a key and a set of arguments, call them when given a context. Primarily useful in composition.

Use a closure to call a stored key with stored arguments.

const call = (key, ...args) => context => context[key](...args);
 
Promise.resolve([1, 2, 3])
   .then(call('map', x => 2 * x))
   .then(console.log); //[ 2, 4, 6 ]
@@ -461,7 +461,24 @@ console.log<
     (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
   );
 
UUIDGeneratorBrowser(); // '7982fcfe-5721-4632-bede-6000885be57d'
-

Date

getDaysDiffBetweenDates

Returns the difference (in days) between two dates.

Calculate the difference (in days) between two Date objects.

const getDaysDiffBetweenDates = (dateInitial, dateFinal) =>
+

Date

formatDuration

Returns the human readable format of the given number of milliseconds.

Divide ms with the appropriate values to obtain the appropriate values for day, hour, minute, second and millisecond. Use Object.entries() with Array.filter() to keep only non-zero values. Use Array.map() to create the string for each value, pluralizing appropriately. Use String.join(', ') to combine the values into a string.

const formatDuration = ms => {
+  if (ms < 0) ms = -ms;
+  const time = {
+    day: Math.floor(ms / 86400000),
+    hour: Math.floor(ms / 3600000) % 24,
+    minute: Math.floor(ms / 60000) % 60,
+    second: Math.floor(ms / 1000) % 60,
+    millisecond: Math.floor(ms) % 1000
+  };
+  return Object.entries(time)
+    .filter(val => val[1] !== 0)
+    .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0]))
+    .join(', ');
+};
+
formatDuration(1001); // "1 second, 1 millisecond"
+formatDuration(343250555); // "3 days, 23 hours, 20 minutes, 50 seconds, 555 milliseconds"
+formatDuration(34325055574); // "397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds"
+

getDaysDiffBetweenDates

Returns the difference (in days) between two dates.

Calculate the difference (in days) between two Date objects.

const getDaysDiffBetweenDates = (dateInitial, dateFinal) =>
   (dateFinal - dateInitial) / (1000 * 3600 * 24);
 
getDaysDiffBetweenDates(new Date('2017-12-13'), new Date('2017-12-22')); // 9
 

JSONToDate

Converts a JSON object to a date.

Use Date(), to convert dates in JSON format to readable format (dd/mm/yyyy).

const JSONToDate = arr => {
@@ -693,6 +710,19 @@ document.bodyShow examples
lcm(12, 7); // 84
 lcm([1, 3, 4], 5); // 60
+

luhnCheck

Implementation of the Luhn Algorithm used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers etc.

Use String.split(''), Array.reverse() and Array.map() in combination with parseInt() to obtain an array of digits. Use Array.splice(0,1) to obtain the last digit. Use Array.reduce() to implement the Luhn Algorithm. Return true if sum is divisible by 10, false otherwise.

const luhnCheck = num => {
+  let arr = (num + '')
+    .split('')
+    .reverse()
+    .map(x => parseInt(x));
+  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);
+  sum += lastDigit;
+  return sum % 10 === 0;
+};
+
luhnCheck('4485275742308327'); // true
+luhnCheck(6011329933655299); //  true
+luhnCheck(123456789); // false
 

median

Returns the median of an 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.

const median = arr => {
   const mid = Math.floor(arr.length / 2),
     nums = [...arr].sort((a, b) => a - b);
@@ -1203,34 +1233,4 @@ console.log<
 yesNo('yes'); // true
 yesNo('No'); // false
 yesNo('Foo', true); // true
-

Uncategorized

formatDuration

Returns the human readable format of the given number of milliseconds.

Divide ms with the appropriate values to obtain the appropriate values for day, hour, minute, second and millisecond. Use Object.entries() with Array.filter() to keep only non-zero values. Use Array.map() to create the string for each value, pluralizing appropriately. Use String.join(', ') to combine the values into a string.

const formatDuration = ms => {
-  if (ms < 0) ms = -ms;
-  const time = {
-    day: Math.floor(ms / 86400000),
-    hour: Math.floor(ms / 3600000) % 24,
-    minute: Math.floor(ms / 60000) % 60,
-    second: Math.floor(ms / 1000) % 60,
-    millisecond: Math.floor(ms) % 1000
-  };
-  return Object.entries(time)
-    .filter(val => val[1] !== 0)
-    .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0]))
-    .join(', ');
-};
-
formatDuration(1001); // "1 second, 1 millisecond"
-formatDuration(343250555); // "3 days, 23 hours, 20 minutes, 50 seconds, 555 milliseconds"
-formatDuration(34325055574); // "397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds"
-

luhnCheck

Implementation of the Luhn Algorithm used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers etc.

Use String.split(''), Array.reverse() and Array.map() in combination with parseInt() to obtain an array of digits. Use Array.splice(0,1) to obtain the last digit. Use Array.reduce() to implement the Luhn Algorithm. Return true if sum is divisible by 10, false otherwise.

const luhnCheck = num => {
-  let arr = (num + '')
-    .split('')
-    .reverse()
-    .map(x => parseInt(x));
-  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);
-  sum += lastDigit;
-  return sum % 10 === 0;
-};
-
luhnCheck('4485275742308327'); // true
-luhnCheck(6011329933655299); //  true
-luhnCheck(123456789); // false
-
\ No newline at end of file +
\ No newline at end of file