我是D3的新手,我无法理解如何从D3访问'sum'字段。通过基本聚合,我可以使用以下命令轻松映射字段:
var load_data = resp.aggregations.my_summary.buckets.map(function(d) {
return {
letter: d.key,
frequency: d.doc_count
}
});
当响应格式如下时,会出现问题: “水桶”:[ { “1”:{ “价值”:5975 }, “key”:“XXXXXXXXXXXX”, “doc_count”:5376 },
我真正需要的是与原始函数相同的“关键”字段,但频率是上述数据的值。
感谢您的帮助! -John
答案 0 :(得分:0)
如果我正确理解了您的问题,您将拥有许多具有相同密钥但频率不同的匿名对象。您希望将每个唯一键相加以累计累计频率。
您可以使用Array.reduce()方法来帮助您解决此问题。我不确定这里是如何使用D3的 - 您是否尝试使用d3.sum()
方法?
var b = [
{key: 'a', freq: 45454}, {key: 'a', freq: 4545},
{key: 'b', freq: 1232}, {key: 'b', freq: 4544}
];
var counts = b.reduce(function(p, d) {
if (d.key in p)
p[d.key] += d.freq;
else
p[d.key] = d.freq;
return p;
}, {});