我有一个变量Params传入作为makePlot函数的参数。我想在d3.json请求中访问它,但它是未定义的。见下文。
const makePlot = (Params) => {
// Params defined here
d3.json(`somedata.json`, (error, data) => {
// Params not defined here
data.forEach((d) => {
d.Params.something = Number(d.Params.something);
d.Params.somethingElse = Number(d.Params.somethingElse);
});
};
有没有办法纠正这个问题?
答案 0 :(得分:1)
嗯,Params
(没有任何前置d.
)在您的内部功能中随时可用。这被称为[封闭] https://stackoverflow.com/a/111111/444255),正常的javascript特征。
只需删除之前的d.
。
d
是一个完全不同的变量,基本上是你正在迭代的data
的第一级子元素。 (很可能是对象属性和数组成员)。