如何从JSON数据中找到最大值和最小值。我想要data1,data2 ... data(n)的最大checkins和Checkintimes。我的代码是:
var max = d3.max(data, function(d) { return d.Checkintimes;} );
var min = d3.min(data, function(d) { return d.Checkintimes;} );
我也试过这个选项
d3.json("Values.json", function(data) {
var maxmbt = d3.max(d3.values(data) );
var maxcheckins = d3.max(d3.values(data));
console.log(maxmbt);
console.log(maxcheckins);
xScale.domain([0,maxcheckins]);
xScale.domain([0,maxmbt]);
});
我有这种格式的json:
[
{
"name":"data1",
"checkins":[[1,0],[2,0],[3,0],[4,3],[5,0],[6,0],[7,0],[8,3],[9,0],[10,0],[11,0],[12,0]],
"teamsize":[[1,0],[2,0],[3,0],[4,3],[5,0],[6,0],[7,0],[8,1],[9,0],[10,0],[11,0],[12,0]],
"Checkintimes":[[1,0],[2,0],[3,0],[4,184],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,0],[12,0]]
},
{"name":"data2",
"checkins":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,27],[12,12]],
"teamsize":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,11],[12,11]],
"Checkintimes":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,10],[12,12]]
}
]
目前当我使用返回值时是一个数组。不是单一价值。例如,在上述例子中,这里的最大值是27和Checkintimes - 184。
答案 0 :(得分:6)
d3.max
函数需要有一个获取单个值的访问器。您需要嵌套调用,因为您有嵌套数据:
var max = d3.max(data, function(d) {
return d3.max(d.Checkintimes, function(e) { return d3.max(e); });
});
答案 1 :(得分:0)
试试这段代码:
<强> Fiddle 强>
<强> JS 强>:
dataset.forEach(function(d, i) {
max= d3.max(d.checkins);
min=d3.min(d.checkins);
});