我有一个D3功能,我想根据用户选择返回一个特定的数据元素。
例如:
var selected = this.value;
line.y(function(d) { return d.selected; });
selected
变量将是真实元素名称的占位符。
上面的代码块不起作用,但我想知道其他一些构造是否有效。我已经尝试了其他几种没有运气的组合,包括return d. + selected
。
可行的替代方案是case语句或许多if / else语句,例如:
if(selected === "element1") {
return d.element1;
}
else {
return d.element2;
}
我宁愿避免这种情况,因为有很多不同的选择。
感谢您的帮助。
答案 0 :(得分:2)
您可以使用:
line.y(function(d) { return d[selected]; });
这与D3的JavaScript语法无关:
d.element1
d['element1']
var key = 'element1';
d[key]
所有访问相同的属性。