This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
This function changes the datestring to the following format | |
Jan 29 2018 - 09:51 AM | |
*/ | |
function formatDate(dateString){ | |
const date = new Date(dateString); | |
const hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours(); | |
return [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ][date.getMonth()] + ' ' | |
+ (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ' | |
+ date.getFullYear() + ' - ' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var date = new Date(); | |
var months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; | |
console.log("The current month is " + months[date.getMonth()]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function timeAgo(time){ | |
var units = [ | |
{ name: "second", limit: 60, in_seconds: 1 }, | |
{ name: "minute", limit: 3600, in_seconds: 60 }, | |
{ name: "hour", limit: 86400, in_seconds: 3600 }, | |
{ name: "day", limit: 604800, in_seconds: 86400 }, | |
{ name: "week", limit: 2629743, in_seconds: 604800 }, | |
{ name: "month", limit: 31556926, in_seconds: 2629743 }, | |
{ name: "year", limit: null, in_seconds: 31556926 } | |
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getRandom(arr, n) { | |
var result = new Array(n), | |
len = arr.length, | |
taken = new Array(len); | |
if (n > len) | |
throw new RangeError("getRandom: more elements taken than available"); | |
while (n--) { | |
var x = Math.floor(Math.random() * len); | |
result[n] = arr[x in taken ? taken[x] : x]; | |
taken[x] = --len in taken ? taken[len] : len; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Based on https://stackoverflow.com/a/46880431/607608 | |
function getComb(set, val) { | |
const res = []; | |
function comb(set, k, partial, pref) { | |
if (!partial) partial = []; | |
for (const element in set) { | |
if (k > 1) { | |
const set_copy = set.slice(); | |
set_copy.splice(element, 1); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const random = (i,j) => (Math.floor(Math.random() * (j - i)) + i); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Based on https://stackoverflow.com/a/42531964 | |
function combinations(array, length) { | |
const arr = new Array(1 << array.length).fill().map( | |
(e1, i) => array.filter((e2, j) => i & 1 << j)); | |
return length ? arr.filter(a => a.length == length) : arr; | |
} | |
//console.log(combinations([1, 2, 3, 8, 10], 2)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const factorial = (n) => (Array.from(Array(n), (_, i) => i + 1)).reduce((a, b) => a * b); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const arr = [ [ '8', '0', '5', '7', '9' ], [ '1', '2', '4' ] ] | |
const output = arr.reduce((a, b) => { | |
let ret = []; | |
a.forEach(i => b.forEach(j => ret.push(i + j))); | |
return ret; | |
}); | |
// output = [ '81', '82', '84', '01', '02', '04', '51', '52', '54', '71', '72', '74', '91', '92', '94' ]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function isPrime(num) { | |
if (num > 2 && num % 2 === 0) return false; | |
for (var i = 3; i < Math.sqrt(num); i += 2) { | |
if (num % i === 0) return false; | |
} | |
return num > 1; | |
} |
OlderNewer