【发布时间】:2013-12-17 15:30:49
【问题描述】:
我有两个下拉菜单,允许用户选择散点图的 x 和 y 轴。在散点图中还绘制了一条线性回归线,所以我希望它随着两个轴上的值的变化而更新。
为此,我必须相应地更改 var points 的两个数组,以更改 x 和/或 y 轴的值
var points = dataset.map(function (d) { return [parseFloat(d.x), parseFloat(d.y)]; });
(我使用这种数组是因为我使用 js 库来计算回归的值)d.x 包含 x 轴的值,d.y y 轴'。
我想做的是能够仅更改数组本身中的第一个或第二个数组(d.x 或d.y)。
为此,我将变量放在事件侦听器中,但这是我不知道如何解决的问题:
由于会有two event listeners,一个用于d.x,一个用于d.y,我怎么能在事件监听器中说只更改数组的d.x 或d.y 值?
现在我有 x 轴:
.on("change", function () { //other stuff happening, then:
var points = dataset.map(function (d) { return [parseFloat(d[SelX]), parseFloat(d.y)]; });
SelX 指的是 x 轴值已更改,并且有效,但我希望它也不要更改数组中的 d.y 值,我不知道在不影响的情况下编写它的正确语法也是数组的第二个值。
或者这个解决方案可能会更好:
由于var points 是在.on change 事件之前声明的,是否可以引用第一个或第二个数组,这样我就不必将整个内容粘贴到事件侦听器中?
【问题讨论】:
-
我不确定你在问什么。你说的这些事件监听器是什么?看起来
d.x和d.y是单独的值而不是数组。 -
我将编辑第一篇文章以使事情更清楚
-
希望这种方式更容易理解!我很难解释我今天想用文字做什么
标签: javascript arrays d3.js