减少Javascript对象值

时间:2014-02-11 14:23:38

标签: javascript

有没有办法在Javascript中用Object值写一个reduce函数?我正在寻找减少一系列键的类比:

Object.keys(hash).reduce(function(a, b) {

// reduce logic 

})

2 个答案:

答案 0 :(得分:1)

不,对象没有这种原生的高阶函数。

您要么必须编写自己的库,使用库(Underscore的_.reduce也可以对对象起作用)或者像刚才那样在Key上应用Array方法:

 Object.keys(hash).reduce(function(sum, k) {
     return sum + hash[k];
 }, 0)

答案 1 :(得分:0)

这是你需要的吗?

var o = { a:1, b:2, c:3 },
    values = [];

for(var k in o) {
    values.push(o[k]);
}

var result = values.reduce(function(previousValue, currentValue, index, array){
  return previousValue + currentValue;
});

console.log(result);

http://jsfiddle.net/Mkm6e/