我有一个对象数组,它将实际的刻度值映射到我想要的刻度的显示标签上。换句话说,该对象被键入tick值并给出显示值。d3 - 可从闭包访问的tickFormat +可变变量问题?
var tickMap = [{"27": 27, "28": 28, "29": 29, "30": 30, "31": "Test", "32": "Test2", "33": 33},
{"50": 50, "58": "Test3", "66": 66, "74": 74, "82": 82, "90": 90}];
我然后遍历这一点,并使用tickFormat
财产,试图为每个刻度值显示返回值。 d
是tickValue
蜱的实际数值:
for (var i = 0; i < tickMap.length; i++) {
index = i;
dimensions[i] = {
'tickFormat': function(d) {
return tickMap[index][d];
},
// other dimension properties are here, including arrays of
// the actual tick values in the tickValues property.
}
};
但这永远只能似乎数组中的第二个(或最后)轴工作。我试图在全局声明index
,而不是使用tickMap[i][d]
,然后将值i
指定为index
,但这并没有帮助。
我也收到错误“可变变量可以从闭包访问”。
我不知道如何解决这个问题。任何帮助将不胜感激。
你是男人!非常感谢你,这个解释非常有帮助。 – AndroidNoobie
不客气,很高兴帮助:) – nem035