D3:使用变量访问绑定数组中的对象
D3: Accessing Objects in Bound array using variables
我正在尝试在地图上动画化月度数据。我把每个月的数据都存储在一个数组中,当我尝试像这样用:.data(data.January)
绑定数据时,它就会起作用。但是,当使用用.data(data.monthName)
选择的跟踪当前月份的变量时,它会在控制台中返回一个TypeError
,并且不会呈现应用程序的其余部分。
我的猜测是我访问键值不正确,d3有一种独特的处理方式。
下面是不起作用的函数。(当滑块控制更改月份时,会触发update()
。)
d3.json("data/avg_revisit.json", function(data) {
color.domain([20, 0]);
function update() {
var monthName = getMonthName(currentMonth);
colored_bars.selectAll("rect")
.data(data.monthName)
.enter()
.append("rect")
.attr("width", getLandWidth())
.attr("class", "bars")
.attr("height", function(d) {
return projection([0, d.latitude - 0.5])[1] - projection([0, d.latitude])[1];
})
.attr("opacity", 0.6)
.style("fill", function(d) {
//Get data value
var value = d.average_revisit;
if (value) {
//If value exists…
return color(value);
} else {
//If value is undefined…
return "#ccc";
}
})
//Define position of each rectangle by it's latitude from the data
.attr("transform", function(d) {
return "translate(" + projection([-180, d.latitude]) + ")"
});
}
使用data[monthName]
而不是data.monthName
。如果使用变量访问对象的键,则必须使用object[string variable]
。
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象