Skip to content

Instantly share code, notes, and snippets.

View Woodsphreaker's full-sized avatar
🎯
Focusing

Carlo Enrico Woodsphreaker

🎯
Focusing
  • São Paulo
View GitHub Profile
@Woodsphreaker
Woodsphreaker / primeNumbers.js
Created March 14, 2017 14:35
Dado um número aleatório, retornar todos os números PRIMOS entre 0 e o número escolhido
"use strict";
const divisors = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const max = Math.max.apply(null, divisors);
const base = (num) => num > max ? [].concat(divisors, num) : divisors;
const numbers = (num) => [...Array(num).keys()];
const numberTest = (num) => base(num).map((_a) => num % _a === 0).filter(_a => _a === true);
const prime = (num) => numbers(num).filter(_a => numberTest(_a).length === 2);
console.log(prime(100)); // [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
@Woodsphreaker
Woodsphreaker / primeNumbers.js
Created March 14, 2017 17:42 — forked from lubien/primeNumbers.js
Dado um número aleatório, retornar todos os números PRIMOS entre 0 e o número escolhido
const
range = x => y =>
Array.from({length: y - x})
.map((_, i) => x + i)
, lt = y => x =>
x < y
, takeWhile = pred => it => {
let val, xs = []
@Woodsphreaker
Woodsphreaker / negatives.js
Last active March 18, 2017 17:20
Count Negative Integers in Matrix
"use strict";
const arr = [[-1, 3, 4, 1], [2, 2, 4, 9], [4, 5, -7, 9]];
const flatten = [].concat(...arr);
const find = () => flatten.filter(_a => _a < 0).length;
console.log(find()) //2
const matrix = [[2,4,6,8],[12,14,16,18],[20,24,28,32],[32,34,36,38],[42,44,46,48]];
const exp = matrix[0];
const arrNumbers = matrix.slice(1);
const props = [
(number, _i) => (number * exp[_i]),
(number, _i) => (number / exp[_i]),
(number, _i) => (number - exp[_i]),
(number, _i) => (number + exp[_i])
];
const op = (arr, _i) => arr.map(_a => props[_i](_a, _i));
@Woodsphreaker
Woodsphreaker / even_odd.js
Last active March 18, 2017 23:33
Show Me the Evens - Show me the Odds
const numbersGenerator = (numbers) => [].concat(...Array(numbers).keys());
const props = [
(num) => num % 2 === 0,
(num) => !props[0](num)
]
const result = (range, type) => numbersGenerator(range).filter(_a => props[type](_a))
console.log(result(20,0));
console.log(result(20,1));
// caso de uso
@Woodsphreaker
Woodsphreaker / dicionario.js
Created March 18, 2017 18:17
Some os valores dos objetos
const obj = [{ '5': 50, '6': 60 }, { 'A': 10 }, { 'YEEZY': 30 }];
const arrNumbers = () => obj.map(_a => Object.values(_a));
const onlyNumbers = () => [].concat(...arrNumbers());
const result = () => onlyNumbers().reduce((_a, _b) => _a + _b, 0);
console.log(result()); // 150
"use strict";
const digits = num => num.toString().split("").map(Number);
const invertNumber = number => digits(number).reverse();
const toNumber = list => Number(list.join(""));
const invertDigit = number => toNumber(invertNumber(number));
const sumList = list => list.reduce((pre, curr) => pre + curr);
const sumDigits = number => sumList(digits(number));

Recuperar todos os valores do objeto

Tive uma situação em que precisei recuperar todos os valores de um objeto, mas esse objeto tinha vários níveis.

O que fiz então foi, criar uma recursividade, verificando cada nó do objeto, se o nó fosse o tipo Object, como quase tudo no JS é, a função é novamente chamada entrando em um loop até que todos os nós fossem processados e seus valores armazenados.

O reduce permite um valor inicial, então usando o concat e o valor inicial como um array vazio

Recuperar todos os números de um array

Recupera todos arrays e retorna somente um com o valores.

No primeiro método há uma recursividade.

No segundo método, uma conversão para string, split e finalmente converte para um array final de números

Acho que pode ser útil também.

@Woodsphreaker
Woodsphreaker / info.md
Last active March 23, 2017 03:23
reduceAllKeysObject

Recuperar todas as chaves do objeto

Recupera todas a chaves (keys) do objeto e armazena em um array.

Não importa quantos níveis existem, todas as chaves serão retornadas.

Pode ser útil no dia a dia.