Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save techiediaries/31976bebf925df742336d31779862c2d to your computer and use it in GitHub Desktop.

Select an option

Save techiediaries/31976bebf925df742336d31779862c2d to your computer and use it in GitHub Desktop.
async function fibonacci(n){
if (n < 0) throw new Error('must be 0 or greater');
if (n === 0) return 0;
if (n === 1) return 1;
return await fibonacci(n - 1) + await fibonacci(n - 2);
}
function isPrime(num){
for (let i = 2; i < num; i++)
if (num % i === 0) return false;
return num !== 1 && num !== 0;
}
function isEven(n) {
return n % 2 == 0;
}
function isOdd(n) {
return Math.abs(n % 2) == 1;
}
function toLowerCase(str){
return str.toLowerCase();
}
function toUpperCase(str){
return str.toUpperCase();
//return "HELLO WORLD";
}
function contains(str, substring, fromIndex){
return str.indexOf(substring, fromIndex) !== -1;
}
function repeat(str, n){
return (new Array(n + 1)).join(str);
}
function simulateAsyncOpV1(callback){
setTimeout(function () {
callback();
}, 1000);
}
function simulateAsyncOpV2(){
return new Promise(function(resolve, reject) {
resolve();
});
}
function simulateAsyncOp() {
return new Promise(resolve => {
resolve(true);
});
}
module.exports = {
fibonacci: fibonacci,
isPrime: isPrime,
isEven: isEven,
isOdd: isOdd,
toLowerCase: toLowerCase,
toUpperCase: toUpperCase,
contains: contains,
repeat: repeat,
simulateAsyncOp: simulateAsyncOp
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment