如何覆盖函数内的数组?
How to overwrite the array inside a function?
我在 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
) 的数组来执行此操作,但我不会覆盖第一个。
像这样在函数外声明数组变量:
var array123;
circle.on("click", function (d) {
array123 = start && start.path(d) || [];
code to maipulate and save the array
.....}
然后您可以在范围内的任何其他地方使用相同的变量。通过在内部声明一个变量,您限制了范围。
我在 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
) 的数组来执行此操作,但我不会覆盖第一个。
像这样在函数外声明数组变量:
var array123;
circle.on("click", function (d) {
array123 = start && start.path(d) || [];
code to maipulate and save the array
.....}
然后您可以在范围内的任何其他地方使用相同的变量。通过在内部声明一个变量,您限制了范围。