Istnieje ładna metoda Array, która reduce()
pozwala uzyskać jedną wartość z tablicy. Przykład:
[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
return previousValue + currentValue;
});
Jaki jest najlepszy sposób na osiągnięcie tego samego w przypadku przedmiotów? Chciałbym to zrobić:
{
a: {value:1},
b: {value:2},
c: {value:3}
}.reduce(function(previous, current, index, array){
return previous.value + current.value;
});
Jednak Object nie wydaje się mieć reduce()
zaimplementowanej żadnej metody.
reduce
metodę. Tam sprawdziłbym. Chociaż rozwiązanie nie wydaje się takie trudne.
_
, ma redukcję dla obiektów. Nie jestem pewien, czy zadziała to przez przypadek, czy też obsługa obiektów była celowa, ale rzeczywiście możesz przekazać obiekt, jak w przykładzie z tego pytania, i będzie to (koncepcyjnie) for..in
, wywołując funkcję iteratora z wartościami znalezionymi w każdym kluczu.
Underscore.js
?