如何覆盖函数内的数组?

时间:2017-01-14 20:08:21

标签: javascript jquery arrays d3.js overwrite

我在D3.js得到了一个问题。 我可以点击圈子并与他们互动。 为了实现这一点,我定义了一个名为

的数组
var array123

在函数内部点击圆圈。现在使用此数组我可以在其中保存设置,例如更改更多数量的圆的大小或颜色。 该函数如下所示:

      circle.on("click", function (d) {

        var array123 = start && start.path(d) || []
    link.style("stroke", function(d) 
                    {
                      return array123.includes(d.source) && array123.includes(d.target) ? "red" : "green";   
                    });
start = d
        .....}

现在我的问题是,这些设置会在点击圆圈时保存,并在再次点击其他圈子时进行更新。 问题是,如何从外部重置阵列的内存?例如,我可以创建一个矩形,当我点击它时,它会重置array123的所有内存?我尝试使用具有确切名称(array123)的数组来完成它,但我不会覆盖第一个。

1 个答案:

答案 0 :(得分:3)

在该函数之外进行数组变量声明,如下所示:

var array123; circle.on("click", function (d) { array123 = start && start.path(d) || []; code to maipulate and save the array .....}

然后,您可以在范围内的任何其他位置使用相同的变量。通过在内部声明变量,您将限制范围。