Skip to content

Instantly share code, notes, and snippets.

@shx-dev
shx-dev / reduce-promise-chaining.js
Last active June 1, 2018 14:14
Artigos | Array.reduce  - O canivete suíço da programação funcional | Promise chaining
const states = {
default: '_partials/default',
error: '_partials/error',
}
function compileTemplates(templates) {
return Object
.keys(templates)
.map(key => ({
key,
@shx-dev
shx-dev / reduce-mixin.js
Last active May 30, 2018 19:54
Artigos | Array.reduce  - O canivete suíço da programação funcional | Mixins
const mix = (baseClass) => ({
with(...mixins) {
return mixins.reduce((newClass, mixin) => mixin(newClass), baseClass);
}
});
const UIStateMixin = (baseClass) => {
return class extends baseClass {
constructor() {
super(...arguments);
@shx-dev
shx-dev / reduce-compose.js
Created May 30, 2018 14:41
Artigos | Array.reduce  - O canivete suíço da programação funcional | Compose
const fetchUsers = () => {
return [
{ name: 'User #1' },
{ name: 'User #2' },
];
}
const getUsernames = (users) => {
return users.map(user => user.name);
}
@shx-dev
shx-dev / reduce-array-multidimensional.js
Last active June 7, 2018 19:50
Artigos | Array.reduce  - O canivete suíço da programação funcional | Array multidimensional
const users = [
{
name: 'User #1',
bookmarks: [
{ title: 'Movie #1', id: 1 },
{ title: 'Movie #6', id: 6 },
{ title: 'Movie #3', id: 3 },
]
},
{
@shx-dev
shx-dev / reduce-array-soma.js
Created May 30, 2018 14:37
Artigos | Array.reduce  - O canivete suíço da programação funcional | Soma
const products = [
{ label: 'Product #1', value: 4.25 },
{ label: 'Product #2', value: 2.50 },
{ label: 'Product #3', value: 1.40 },
];
const total = products.reduce((total, { value }) => total + value, 0); /* 8.15 */