Есть хороший метод Array reduce()
для получения одного значения из Array. Пример:
[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
return previousValue + currentValue;
});
Как лучше всего добиться того же с объектами? Я хотел бы сделать это:
{
a: {value:1},
b: {value:2},
c: {value:3}
}.reduce(function(previous, current, index, array){
return previous.value + current.value;
});
Тем не менее, объект, кажется, не reduce()
реализован ни один метод.
reduce
метод. Я бы проверил там. Тем не менее, решение не кажется таким сложным.
_
, есть сокращение для объектов. Не уверен, что он работает случайно или если поддержка объекта была преднамеренной, но вы действительно можете передать объект, как в примере этого вопроса, и он (концептуально) будет for..in
вызывать вашу функцию итератора со значениями, найденными в каждом ключе.
Underscore.js
?