Travis build: 1898

This commit is contained in:
30secondsofcode
2020-04-16 20:21:43 +00:00
parent 9a493bbbb7
commit 44df63e008
12 changed files with 124 additions and 79 deletions

View File

@ -856,7 +856,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "77a01af8797ecbe71b9c9412d21c144c03a46a49dd3d0e7d869c3df38b39b2b4" "hash": "0a4684d6fc79bdbbac31df3af6c493ba7c881936ada5bc52824b4f26ca177459"
} }
}, },
{ {
@ -919,7 +919,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "6fa14364405f7b99aa49c2157bdc08c02b4ce2f288db29a4348a6983460933c7" "hash": "a4e1e33c0688dbf1ca231d9d8ea315ffed93b7f83f5d8cbf0714f10fdfeda8cf"
} }
}, },
{ {
@ -1058,7 +1058,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "bdc202436bee09f06a353d31841c6cfff33e8efead34c6c56ae1a1413284976d" "hash": "484bd222e636e8a8409c30ddb1fe6e3fe72ab7a43f2edf089b2758d5e9bee528"
} }
}, },
{ {
@ -1293,7 +1293,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "6e9710c9117f500e74e65c0ee36b39fb80bd55537fa5ff9c4b1136b2667096f2" "hash": "0eac852db7a7add352b0d36677b22718b342ed9dc12f11780cac87e3b8260a05"
} }
}, },
{ {
@ -1710,7 +1710,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "f9e6687cc28cd80e68f7a6776f893c7478aaa942710e0eb7144f105eba574a54" "hash": "9e39c6a3a8ec5b51c5e16f69107fc9e90b2697b2cf2689850872071bb968723e"
} }
}, },
{ {
@ -2974,7 +2974,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "3db3faac666ee61ab86c70766d2ab5d1293ffd818da87edb971bfff7a366364a" "hash": "362fddaa6244404741e84bca6fc442a101fdb642af53b299e8b9994d0d7162d8"
} }
}, },
{ {
@ -3559,7 +3559,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "e8f820ce6da97eabde082ffb829c9fb700e85efc79bdebe883c67237269e3f52" "hash": "b031c3387ef66411ab5d295788eac4247ada5b4b068dda90603d3c973890bc26"
} }
}, },
{ {
@ -3905,7 +3905,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "a2b9ac4f1209c3791caa6f40f0d041acd75514e9ee8909f2e3833635f357c0bd" "hash": "0eb844801e767edcaa6a882a6dce4b5b1dadecb53a92d6ec259d36c57b6a3dd0"
} }
}, },
{ {
@ -4293,7 +4293,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "ffb9c0d1d09aeb989789286efb91cc237b89ce13f44ad9510a014f9ab150df71" "hash": "be8ec39c092128ba679a3f0421b6abc34ad891dec85354caa419dc4104687a05"
} }
}, },
{ {
@ -4609,7 +4609,7 @@
] ]
}, },
"meta": { "meta": {
"hash": "6dd4c6a51d2c80fa4768c95ae01c16a8359c4140bcad28c7fde0cecd72d7d3e2" "hash": "24b93b68a59b49f245590930fed6fb82e286ce09f90e292466cde63c1784c347"
} }
}, },
{ {
@ -5586,6 +5586,21 @@
"hash": "dffaec8a8f2b3c66e709b2e9ee0a57082be53305f000db3d75983ae103866607" "hash": "dffaec8a8f2b3c66e709b2e9ee0a57082be53305f000db3d75983ae103866607"
} }
}, },
{
"id": "vectorAngle",
"type": "snippetListing",
"title": "vectorAngle",
"attributes": {
"text": "Returns the angle (theta) between two vectors.\n\nUse `Array.prototype.reduce()`, `Math.pow()` and `Math.sqrt()` to calculate the magnitude of each vector and the scalar product of the two vectors.\nUse `Math.acos()` to calculate the arccos and get the theta value.\n\n\n",
"tags": [
"math",
"beginner"
]
},
"meta": {
"hash": "3ec168801eaa9252193c18f71e60c35680f06fcdbf0c3e446b2070f290665b95"
}
},
{ {
"id": "vectorDistance", "id": "vectorDistance",
"type": "snippetListing", "type": "snippetListing",

View File

@ -1402,10 +1402,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "77a01af8797ecbe71b9c9412d21c144c03a46a49dd3d0e7d869c3df38b39b2b4", "hash": "0a4684d6fc79bdbbac31df3af6c493ba7c881936ada5bc52824b4f26ca177459",
"firstSeen": "1516733326", "firstSeen": "1516733326",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 88, "updateCount": 89,
"authorCount": 9 "authorCount": 9
} }
}, },
@ -1505,10 +1505,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "6fa14364405f7b99aa49c2157bdc08c02b4ce2f288db29a4348a6983460933c7", "hash": "a4e1e33c0688dbf1ca231d9d8ea315ffed93b7f83f5d8cbf0714f10fdfeda8cf",
"firstSeen": "1544374334", "firstSeen": "1544374334",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 100, "updateCount": 101,
"authorCount": 4 "authorCount": 4
} }
}, },
@ -1734,10 +1734,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "bdc202436bee09f06a353d31841c6cfff33e8efead34c6c56ae1a1413284976d", "hash": "484bd222e636e8a8409c30ddb1fe6e3fe72ab7a43f2edf089b2758d5e9bee528",
"firstSeen": "1531080384", "firstSeen": "1531080384",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 125, "updateCount": 126,
"authorCount": 5 "authorCount": 5
} }
}, },
@ -2119,10 +2119,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "6e9710c9117f500e74e65c0ee36b39fb80bd55537fa5ff9c4b1136b2667096f2", "hash": "0eac852db7a7add352b0d36677b22718b342ed9dc12f11780cac87e3b8260a05",
"firstSeen": "1512650493", "firstSeen": "1512650493",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 131, "updateCount": 132,
"authorCount": 6 "authorCount": 6
} }
}, },
@ -2806,10 +2806,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "f9e6687cc28cd80e68f7a6776f893c7478aaa942710e0eb7144f105eba574a54", "hash": "9e39c6a3a8ec5b51c5e16f69107fc9e90b2697b2cf2689850872071bb968723e",
"firstSeen": "1515856488", "firstSeen": "1515856488",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 90, "updateCount": 91,
"authorCount": 4 "authorCount": 4
} }
}, },
@ -4880,10 +4880,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "3db3faac666ee61ab86c70766d2ab5d1293ffd818da87edb971bfff7a366364a", "hash": "362fddaa6244404741e84bca6fc442a101fdb642af53b299e8b9994d0d7162d8",
"firstSeen": "1514801920", "firstSeen": "1514801920",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 98, "updateCount": 99,
"authorCount": 7 "authorCount": 7
} }
}, },
@ -5835,10 +5835,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "e8f820ce6da97eabde082ffb829c9fb700e85efc79bdebe883c67237269e3f52", "hash": "b031c3387ef66411ab5d295788eac4247ada5b4b068dda90603d3c973890bc26",
"firstSeen": "1570824965", "firstSeen": "1570824965",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 67, "updateCount": 68,
"authorCount": 4 "authorCount": 4
} }
}, },
@ -6392,7 +6392,7 @@
"codeBlocks": { "codeBlocks": {
"es6": "const pipeAsyncFunctions = (...fns) => arg => fns.reduce((p, f) => p.then(f), Promise.resolve(arg));", "es6": "const pipeAsyncFunctions = (...fns) => arg => fns.reduce((p, f) => p.then(f), Promise.resolve(arg));",
"es5": "var pipeAsyncFunctions = function pipeAsyncFunctions() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (arg) {\n return fns.reduce(function (p, f) {\n return p.then(f);\n }, Promise.resolve(arg));\n };\n};", "es5": "var pipeAsyncFunctions = function pipeAsyncFunctions() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (arg) {\n return fns.reduce(function (p, f) {\n return p.then(f);\n }, Promise.resolve(arg));\n };\n};",
"example": "const sum = pipeAsyncFunctions(\n x => x + 1,\n x => new Promise(resolve => setTimeout(() => resolve(x + 2), 1000)),\n x => x + 3,\n async x => (await x) + 4\n);\n(async () => {\n console.log(await sum(5)); // 15 (after one second)\n})();" "example": "const sum = pipeAsyncFunctions(\n x => x + 1,\n x => new Promise(resolve => setTimeout(() => resolve(x + 2), 1000)),\n x => x + 3,\n async x => (await x) + 4\n);\n(async() => {\n console.log(await sum(5)); // 15 (after one second)\n})();"
}, },
"tags": [ "tags": [
"function", "function",
@ -6401,10 +6401,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "a2b9ac4f1209c3791caa6f40f0d041acd75514e9ee8909f2e3833635f357c0bd", "hash": "0eb844801e767edcaa6a882a6dce4b5b1dadecb53a92d6ec259d36c57b6a3dd0",
"firstSeen": "1517069864", "firstSeen": "1517069864",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 123, "updateCount": 124,
"authorCount": 5 "authorCount": 5
} }
}, },
@ -7039,10 +7039,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "ffb9c0d1d09aeb989789286efb91cc237b89ce13f44ad9510a014f9ab150df71", "hash": "be8ec39c092128ba679a3f0421b6abc34ad891dec85354caa419dc4104687a05",
"firstSeen": "1513521691", "firstSeen": "1513521691",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 120, "updateCount": 121,
"authorCount": 6 "authorCount": 6
} }
}, },
@ -7555,10 +7555,10 @@
] ]
}, },
"meta": { "meta": {
"hash": "6dd4c6a51d2c80fa4768c95ae01c16a8359c4140bcad28c7fde0cecd72d7d3e2", "hash": "24b93b68a59b49f245590930fed6fb82e286ce09f90e292466cde63c1784c347",
"firstSeen": "1514645161", "firstSeen": "1514645161",
"lastUpdated": "1587067825", "lastUpdated": "1587068180",
"updateCount": 62, "updateCount": 63,
"authorCount": 5 "authorCount": 5
} }
}, },
@ -9156,6 +9156,31 @@
"authorCount": 4 "authorCount": 4
} }
}, },
{
"id": "vectorAngle",
"title": "vectorAngle",
"type": "snippet",
"attributes": {
"fileName": "vectorAngle.md",
"text": "Returns the angle (theta) between two vectors.\n\nUse `Array.prototype.reduce()`, `Math.pow()` and `Math.sqrt()` to calculate the magnitude of each vector and the scalar product of the two vectors.\nUse `Math.acos()` to calculate the arccos and get the theta value.\n\n\n",
"codeBlocks": {
"es6": "const vectorAngle = (x, y) => {\n let mX = Math.sqrt(x.reduce((acc, n) => acc + Math.pow(n, 2), 0));\n let mY = Math.sqrt(y.reduce((acc, n) => acc + Math.pow(n, 2), 0));\n return Math.acos(x.reduce((acc, n, i) => acc + n * y[i], 0) / (mX * mY));\n};",
"es5": "var vectorAngle = function vectorAngle(x, y) {\n var mX = Math.sqrt(x.reduce(function (acc, n) {\n return acc + Math.pow(n, 2);\n }, 0));\n var mY = Math.sqrt(y.reduce(function (acc, n) {\n return acc + Math.pow(n, 2);\n }, 0));\n return Math.acos(x.reduce(function (acc, n, i) {\n return acc + n * y[i];\n }, 0) / (mX * mY));\n};",
"example": "vectorAngle([3, 4], [4, 3]); // 0.283794109208328"
},
"tags": [
"math",
"beginner"
]
},
"meta": {
"hash": "3ec168801eaa9252193c18f71e60c35680f06fcdbf0c3e446b2070f290665b95",
"firstSeen": "1576507393",
"lastUpdated": "1587068298",
"updateCount": 7,
"authorCount": 3
}
},
{ {
"id": "vectorDistance", "id": "vectorDistance",
"title": "vectorDistance", "title": "vectorDistance",

View File

@ -11,6 +11,7 @@ Omit the second argument, `separator`, to use a default separator of `','`.
Omit the third argument, `end`, to use the same value as `separator` by default. Omit the third argument, `end`, to use the same value as `separator` by default.
```js ```js
const join = (arr, separator = ',', end = separator) => const join = (arr, separator = ',', end = separator) =>
arr.reduce( arr.reduce(
(acc, val, i) => (acc, val, i) =>

View File

@ -10,6 +10,7 @@ Determine the `symbol` to be either `?` or `&` based on the `length` of `querySt
Return the `queryString` or an empty string when the `queryParameters` are falsy. Return the `queryString` or an empty string when the `queryParameters` are falsy.
```js ```js
const objectToQueryString = queryParameters => { const objectToQueryString = queryParameters => {
return queryParameters return queryParameters
? Object.entries(queryParameters).reduce((queryString, [key, val], index) => { ? Object.entries(queryParameters).reduce((queryString, [key, val], index) => {

View File

@ -14,13 +14,14 @@ const pipeAsyncFunctions = (...fns) => arg => fns.reduce((p, f) => p.then(f), Pr
``` ```
```js ```js
const sum = pipeAsyncFunctions( const sum = pipeAsyncFunctions(
x => x + 1, x => x + 1,
x => new Promise(resolve => setTimeout(() => resolve(x + 2), 1000)), x => new Promise(resolve => setTimeout(() => resolve(x + 2), 1000)),
x => x + 3, x => x + 3,
async x => (await x) + 4 async x => (await x) + 4
); );
(async () => { (async() => {
console.log(await sum(5)); // 15 (after one second) console.log(await sum(5)); // 15 (after one second)
})(); })();
``` ```

View File

@ -9,6 +9,7 @@ Use `Array.prototype.filter()` to find array elements that return truthy values
The `func` is invoked with three arguments (`value, index, array`). The `func` is invoked with three arguments (`value, index, array`).
```js ```js
const remove = (arr, func) => const remove = (arr, func) =>
Array.isArray(arr) Array.isArray(arr)
? arr.filter(func).reduce((acc, val) => { ? arr.filter(func).reduce((acc, val) => {

View File

@ -12,6 +12,7 @@ Use `size` of a [`Blob` object](https://developer.mozilla.org/en-US/docs/Web/API
Split strings into array of characters with `split('')` and return its length. Split strings into array of characters with `split('')` and return its length.
```js ```js
const size = val => const size = val =>
Array.isArray(val) Array.isArray(val)
? val.length ? val.length