我有一个对象数组,我可以从中轻松获得这样的最大值:
var maxValue = d3.max(data, function (d, i) {
return d.value
});
现在,我怎么能得到不是最大值,而是包含这个值的对象?是否有D3特定的方法来做到这一点?
答案 0 :(得分:0)
这里不需要D3,内置.sort()
的Javascript就足够了:
data.sort(function(a, b) { return b.value - a.value; });
在此之后,data
将按降序排列。也就是说,data[0]
是具有最高.value
的元素。
答案 1 :(得分:0)
粗略的实施:
(function()
{
d3.each = function(array, fn, context)
{
for(var i = 0, len = array.length; i < len; i++)
{
fn.call(context || this, array[i], i);
}
}
})();
var data = [{ 'value' : 1 }, { 'value' : 6 }, { 'value' : 100 }, { 'value' : 56 }, { 'value' : 21 }];
var max = null;
d3.each(data, function(d, i)
{
if(!max || d.value > max.value)
{
max = d;
}
});
console.log(max)
你也得到一个花哨的(不是真的:))新的d3辅助函数(无法在D3 API中找到它)