我有以下对象:
{key: [{thing: value, stuff: value}, {thing: value, stuff: value}], key2: [{thing: value, stuff: value}, {thing: value, stuff: value}]}
对于每个密钥,我希望获得每个密钥的唯一填充值数组,或者更好地获得每个密钥的填充值的总和。东西值是我想要求和的数字。我整天都在这里,而且我的智慧结束了。
以下是数据的确切形式:
顶层:
[Array[1], Array[1], Array[3], Array[1], Array[1], Array[1], Array[2], Array[1], Array[1], Array[1], Array[1], Array[1], Array[1], Array[1], Array[1]]
这是Array [3]:
2: Array[3]
Array [3]中的第一个对象:
0:对象
对象的内容:
Amounts: Array[3]
Avg: 1202.38
Bill: 871.43
每个对象中还有十几个键值对。我想总结所有的"比尔"对于每个已按用户分组的数组。 Bill存在于每个数组中的每个对象中。
要获得我在最顶层看到的版本:
_.groupBy(_.flatten(BigArray),'Name');
我认为这将是朝着正确方向迈出的一步,因为它明确了用户是谁,因为我需要每个名字的总账单。
答案 0 :(得分:1)
这是你追求的吗?
var d = {
key: [{
thing: "a",
stuff: 1
}, {
thing: "b",
stuff: 2
}],
key2: [{
thing: "a",
stuff: 3
}, {
thing: "b",
stuff: 4
}]
};
var result = _.map(d, function(arr, key) {
var stuffValues = _.pluck(arr, 'stuff');
return {
key: key,
stuffSum: _.reduce(stuffValues, function(memo, num) {
return memo + +num;
}, 0)
};
});
document.getElementById('output').textContent = JSON.stringify(result);
// => [{"key":"key","stuffSum":3},{"key":"key2","stuffSum":7}]

<script src="//underscorejs.org/underscore-min.js"></script>
<pre id="output"></pre>
&#13;