Existe um bom método Array reduce()
para obter um valor a partir da matriz. Exemplo:
[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
return previousValue + currentValue;
});
Qual é a melhor maneira de conseguir o mesmo com objetos? Eu gostaria de fazer isso:
{
a: {value:1},
b: {value:2},
c: {value:3}
}.reduce(function(previous, current, index, array){
return previous.value + current.value;
});
No entanto, o objeto não parece ter nenhum reduce()
método implementado.
reduce
método. Eu verificaria lá. Porém, a solução não parece tão difícil.
_
, tem uma redução para objetos. Não tenho certeza se funciona acidentalmente ou se o suporte a objetos foi intencional, mas, de fato, você pode passar um objeto como no exemplo desta pergunta, e será (conceitualmente) for..in
, chamando sua função de iterador com os valores encontrados em cada chave.
Underscore.js
?