Skip to content

Instantly share code, notes, and snippets.

View no23reason's full-sized avatar

Dan Homola no23reason

View GitHub Profile
@no23reason
no23reason / doNTimes.js
Last active April 6, 2017 15:03
For-loop tax Medium code snippets
const doNTimesLoop = (n, f) => {
for (let i = 1; i <= n; i++) {
f(i);
}
}
const doNTimesRec = (n, f) => {
const body = (m) => {
if (m > n) return;
f(m);
@no23reason
no23reason / rangeDeclarative.js
Created April 6, 2017 14:39
For-loop tax Medium code snippets
const range = require("lodash.range")
const squaresLodash = (n) => range(1, n + 1).map(
(n) => n * n);
const squares = (n) => [...Array(n).keys()].map(
(n) => (n + 1) * (n + 1));
console.log(squaresLodash(5)); // logs [ 1, 4, 9, 16, 25 ]
console.log(squares(5)); // logs [ 1, 4, 9, 16, 25 ]
@no23reason
no23reason / rangeIterative.js
Created April 6, 2017 14:12
For-loop tax Medium code snippets
const squaresBad = (n) => {
let result = [];
for (let i = 1; i <= n; i++) {
result.push(i * i);
}
return result;
}
const squares = (n) => {
let result = new Array(n);
@no23reason
no23reason / declarativeMap.js
Created April 6, 2017 13:12
For-loop tax Medium code snippets
const discount = (originalPrices, discountAmount) => {
const multiplier = 1 - discountAmount;
return originalPrices.map(price => price * multiplier);
}
const prices = [5, 25, 8, 18];
console.log(discount(prices, 0.2)); // logs [ 4, 20, 6.4, 14.4 ]
@no23reason
no23reason / iterativeMap.js
Last active April 6, 2017 13:08
For-loop tax Medium code snippets
const discount = (originalPrices, discountAmount) => {
const multiplier = 1 - discountAmount;
// we must clone the array
let result = new Array(originalPrices);
for (let i = 0; i < originalPrices.length; i++) {
result[i] = originalPrices[i] * multiplier;
}
return result;
}
@no23reason
no23reason / declarativeSum.js
Last active April 6, 2017 12:51
For-loop tax Medium code snippets
const sum = (array) => array.reduce(
(total, current) => total + current,
0);
const numbers = [5, 25, 8, 18];
console.log(sum(numbers)); // logs 56
@no23reason
no23reason / iterativeSum.js
Last active April 6, 2017 12:49
For-loop tax Medium code snippets
const sum = (array) => {
let result = 0;
for (let i = 0; i < array.length; i++) {
result += array[i];
}
return result;
}
const numbers = [5, 25, 8, 18];
console.log(sum(numbers)); // logs 56