我正在使用d3.js处理退休计算器/条形图。我建立了条形图以显示静态数组,然后将其连接到我的退休方程式。
当我将图表连接到计算器时,即使输入数组相同,我的yScale还是错误的。我通过更改此方法来解决它:
Dim ieObj As InternetExplorer
Set ieObj = CreateObject("InternetExplorer.Application")
Dim htmlEle As Object
Dim spanEle as Object
Dim itemurl As String
Itemurl = “url of interest”
ieObj.navigate itemurl 'in this case, the web page is has the same name as the itemNum
Do While ieObj.readyState <> READYSTATE_COMPLETE 'wait by repeating loop
until ready
Loop
For Each htmlEle In ieObj.document.getElementsByClassName("nav-list-item")
For Each spanEle in htmlEle.getElementsByTagName("span")
Debug.Print spanEle.innertext
Next spanEle
Next htmlEle
对此:
const yScale = d3.scaleLinear().domain([0, d3.max(fvArr,(d)=>d[1])]).range([height-padding,0]);
为什么要这样做? Codepen是here。
答案 0 :(得分:2)
这里的问题是您的数据包含字符串,而不是数字。
如果您查看fvArr
数组,则会看到以下内容:
[[0, "30000"], [1, "32800"], [2, "35768"] etc...]
因此,乘法在这里所做的只是将结果强制为数字。检查一下:
console.log(typeof("5" * 1))
这与使用一元加号相同,但更为常见:
console.log(typeof(+"5"))