gpt4 book ai didi

Javascript 闭包和 d3

转载 作者:行者123 更新时间:2023-11-30 10:13:32 28 4
gpt4 key购买 nike

所以在 d3 中我想要一个函数数组

var data = [44,23];
var line = [];
for (var i = 0; i < data.length; i++) {
line[i] = d3.svg.line()
.interpolate("monotone")
.y(function(d) {
return data[i];
});
}

但是,由于闭包的工作方式,i 总是被评估为 2。有没有办法让它先评估为 0,然后评估为 1,而不是总是评估为 2?

最佳答案

如果传入 y 的内联函数被异步调用,i 在被调用时将等于 data.length。为避免这种情况,您可以像这样简单地使用数组 forEach 方法:

var data = [44,23];
var line = [];
data.forEach(function(dataItem, i) {
line[i] = d3.svg.line()
.interpolate("monotone")
.y(function(d) {
return dataItem;
});
});

关于Javascript 闭包和 d3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25193509/

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