Skip to content

Instantly share code, notes, and snippets.

View frivolta's full-sized avatar

Filippo Rivolta frivolta

View GitHub Profile
const compose =
(...fns) =>
(x) =>
fns.reduceRight((res, fn) => fn(res), x);
const discount = compose(normalizePrice, divide100, multiply20);
discount(200.0); //40.00
const compose = (a, b, c) => (x) => a(b(c(x)));
// result = a(b(c(x)))
const discount = normalizePrice(divide100(multiply20(200))); // 40.00
const multiply20 = (price) => price * 20;
const divide100 = (price) => price / 100;
const normalizePrice = (price) => price.toFixed(2);
@frivolta
frivolta / thirdSolution.js
Created April 12, 2021 08:17
jmawd - lastSolution
const result = [...new Set([...firstArr, ...secondArr])]
@frivolta
frivolta / secondSolution.js
Created April 12, 2021 08:16
jmawd - second solution
const concatArr = firstArr.concat(secondArr)
const result = concatArr.filter((item, idx) => concatArr.indexOf(item) === idx)
@frivolta
frivolta / firstSolution.js
Created April 12, 2021 08:08
jmawd - first solution
const result = []
for (let i = 0; i < firstArr.length; i++) {
if (result.indexOf(firstArr[i]) == -1) result.push(firstArr[i])
}
for (let i = 0; i < secondArr.length; i++) {
if (result.indexOf(secondArr[i]) == -1) result.push(secondArr[i])
}
const firstArr = new Array(200).fill(undefined).map((val, i) => `item${i}`)
const secondArr = new Array(250).fill(undefined).map((val, i) => `item${i}`)
@frivolta
frivolta / initial.js
Created April 12, 2021 08:03
jmawd - initial
const firstArr = new Array(200).fill(undefined).map((val, i) => `item${i}`)
const secondArr = new Array(250).fill(undefined).map((val, i) => `item${i}`)
const result = secondArr.reduce(
(acc, item) => {
return acc.includes(item) ? acc : [...acc, item]
},
[...firstArr]
)