javascript:对象数组中的对象数组

时间:2014-04-25 06:23:35

标签: javascript arrays d3.js

这是样本数据:

var data = [
    {row: 0, col: 0, value: [{x: 1, y: 19}, {x: 2, y: 20}]},
    {row: 0, col: 1, value: [{x: 1, y: 24}, {x: 2, y: 27}]},
    {row: 1, col: 1, value: [{x: 1, y: 31}, {x: 2, y: 26}]},
    {row: 1, col: 2, value: [{x: 1, y: 29}, {x: 2, y: 19}]},
]

我无法找到一种定义x-domain的方法。

var x1 = d3.scale.ordinal()
        .domain(data.map(function(d) { return d.value.x; }))
        .rangeRoundBands([0, chartW], 0.1);

这个位给出错误:

 .domain(data.map(function(d) { return d.value.x; }))

如何迭代值对象的内部数组??

提前致谢!

1 个答案:

答案 0 :(得分:2)

您需要在此处进行两次嵌套迭代:

.domain([
  d3.min(data, function(d) { return d3.min(d.value, function(e) { return e.x; }); }),
  d3.max(data, function(d) { return d3.max(d.value, function(e) { return e.x; }); })
  ]);

同样适用于y