Underscore.js: a Biblioteca JavaScript que Você Precisa Conhecer
Hoje estou aqui para compartilhar uma biblioteca JavaScript que conheci a pouco tempo e que você também precisa saber de sua existência!
Acredito que os programadores Ruby estão acostumados com métodos simples como: each, map, min, max
etc.. Agora você pode ter eles em JavaScript, com a biblioteca Underscore.js.
Escolhi alguns métodos para apresentá-los, vejamos abaixo..
Each
Itera sobre uma lista de elementos, podendo acessar o valor e índice.
_.each([10, 20, 30, 40], function(v, i){
// listando [valor, índice]
console.log([v, i]);
});
=> [10, 0]
=> [20, 1]
=> [30, 2]
=> [40, 3]
Map
Produz um novo array mapeando cada valor através da função.
_.map([2, 4, 6],function(v){
// multiplica por 2
return v * 2;
});
=> [4, 8, 12]
Filter
Percorre cada elemento, retornando um array de valores que passam na condição.
_.filter(['João', 'Pedro', 'Paulo'], function(v){
// apenas que começam com a letra "P"
return v.charAt(0) == 'P';
});
=> ["Pedro", "Paulo"]
Contains
Retorna true
se o valor está presente na lista.
_.contains(['ruby', 'python', 'php'], 'javascript');
=> false
Max
Retorna o valor máximo da lista.
_.max([23, 45, 65, 34, 1, 35])
=> 65
Shuffle
Retorna uma cópia misturada da lista.
_.shuffle([1, 2, 3, 4, 5]);
=> [5, 2, 1, 4, 3]
Last
Retorna o último elemento do array.
_.last([{name: 'André', age: 21}, {name: 'Marta', age: 37}]);
=> Object { name="Marta", age=37}
Flatten
"Achata" um array.
_.flatten([[1, 2], [[[4, 5]]], [[[[6], 7]]]])
=> [1, 2, 4, 5, 6, 7]
Range
Cria um faixa de valores.
// Começa em 100, vai até 200, de 10 em 10
_.range(100, 210, 10);
=> [100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200]
Has
Retorna true
se o objeto contém uma dada chave.
_.has({a: 1, b: 2, c: 3}, 'd');
=> false
Times
Invoca uma função iteradora dado o número de vezes.
_(4).times(function(n){
console.log("número " + n)
});
=> número 0
=> número 1
=> número 2
=> número 3
Essa são apenas algumas funções, entre no site e confira todas.
Abraços.