gpt4 book ai didi

javascript - 在 D3 Javascript 中将字符串转换为数组名称

转载 作者:行者123 更新时间:2023-11-29 19:26:38 25 4
gpt4 key购买 nike

我想输入数据数组的名称作为变量,但出于某种原因它对我不起作用。

所以在它起作用的情况下:

 d3.select('#energychart').html("");

d3.select('#energychart')
.selectAll('svg')
.data([week3])
.enter()
.append('svg')

但在这种情况下,它不会

     var x = "week3";
d3.select('#energychart')
.selectAll('svg')
.data([x])
.enter()
.append('svg')

最佳答案

如果我理解正确,你正试图通过它的字符串名称获取名称为 week3 的变量,如 this question.如果这是正确的,据我所知,它与 d3 无关。

我建议这样做。 (其中名称为“week3”的变量是预定义的全局变量。)

var varName = "week3";
var x = window[varName];
d3.select('#energychart')
.selectAll('svg')
.data([x])
.enter()
.append('svg');

如果 week3 不是全局变量,那么您将必须像 this answer 中那样设置一个变量对象。 .然后,您必须用变量 obj 替换窗口对象(它包含全局变量)。

var variables = {
"week3": [3,4,5,6,7] // array can be replace with any data you want as value
};

var varName = "week3";
var x = variables[varName];
d3.select('#energychart')
.selectAll('svg')
.data([x])
.enter()
.append('svg')

编辑:

所以按照评论中的要求。这是对其工作原理的解释。

首先你需要知道的是窗口只是一个对象。窗口对象保存全局变量。在您的浏览器控制台中运行以下这两行代码将向您显示所有全局变量都存储在窗口对象中。

var AADataSet = [1, 2, 3, 4, 5];

console.log(window);

有多种方法可以从对象中获取值。我将向您展示三种从对象中获取属性的等效方法。

var result;
var obj = { foo: 1, Bar: 2, "foo bar": 3 };
var randomVarName = "Bar"; // notice the capital B in Bar is important since it was declared that way.

result = obj.foo; // result equals 1
result = obj[randomVarName]; // result equals 2
result = obj["foo bar"]; // result equals 3

因为 window 是一个对象,变量直接存储在对象上,而不是嵌套在里面。您可以通过 window["AADataSet"] 访问 AADataSet 字符串“AADataSet”也可以存储在变量中,然后使用,例如

var varName = "AADataSet";
window[varName]

关于javascript - 在 D3 Javascript 中将字符串转换为数组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30429417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com