quarta-feira, 7 de outubro de 2015

Map e Reduce em JavaScript

Para quem é do mundo JavaScript isso que vou mostrar é básico, mas quem é programador Java e precisou fazer isso em JavaScript com certeza tentou fazer um for... Vamos lá:

----------------

Imagine que você tenha uma lista de objetos... e cada objeto tenha um atributo chamado id... como você faria para obter uma nova lista com apenas com os ids?

Assim:

var idList = list.map(function(entity) {
    return entity.id;
});

----------------

Imagine que você tenha uma lista de objetos... e cada objeto tenha um atributo chamado value... como você faria para obter a soma de todos os atributos value?

Assim:

var valueTotal = list.reduce(function(valueTotal, entity) {
    return valueTotal + entity.value;
}, 0);

----------------

ATUALIZADO: FILTER

Imagine que você tenha uma lista de objetos, e queira que excluir dessa lista todos os itens com id < 10 (ou qualquer outra condição). Só usar o filter:

var filteredList = list.filter(function(entity) {
     return entity.id > 10;
});


----------------

Fontes no github: https://gist.github.com/adrianoschmidt/702dc06d9d7321600fb8

----------------

Vaaleu galera!
Adriano Schmidt

Nenhum comentário:

Postar um comentário