我试图用这种数据格式制作一些代码:
List<UserModel> models = ...;
List<UserDetails> details = ...;
foreach (UserModel model in models)
{
foreach (UserDetails detail in details)
{
if (detail.RoleId == model.RoleId)
{
bool isPrimary = model.SelectedUserType == UserType.Primary;
detail.IsPrimary = isPrimary;
}
}
}
这是生成行的代码:
var data3 = [
{ "task": "Estructura", "data": [{"x":new Date(Date.parse("2014-01-03")),"y":0}, {"x":new Date(Date.parse("2014-03-09")),"y":8}] },
{ "task": "Mamposteria", "data": [{"x":new Date(Date.parse("2014-02-01")),"y":0}, {"x":new Date(Date.parse("2014-03-01")),"y":8}] },
{ "task": "Friso", "data": [{"x":new Date(Date.parse("2014-03-01")),"y":0}, {"x":new Date(Date.parse("2014-03-30")),"y":8}] },
{ "task": "Mortero", "data": [{"x":new Date(Date.parse("2014-05-01")),"y":8}, {"x":new Date(Date.parse("2014-07-01")),"y":0}] },
{ "task": "Pisos", "data": [{"x":new Date(Date.parse("2014-07-01")),"y":8}, {"x":new Date(Date.parse("2014-09-01")),"y":0}] }
];
但我遇到了麻烦,因为它不是一个双元素阵列。
我是否必须以其他方式排列数据或在线函数生成器中进行更改?你能举个例子我可以解决这个问题吗?
答案 0 :(得分:1)
这里需要更改两件事 - 您需要遍历每个对象中的data
数组,并且需要更改访问器以便它们应用于{中的单个对象{1}}数组:
data
然后要应用该行,您将作用于顶级对象,因此您需要传入var line = d3.svg.line() // line generator
.interpolate("linear")
// d is a single object in a data array
.x(function(d) { return xScale(d.x); })
.y(function(d) { return yScale(d.y); });
数组:
data