Javascript D3刻度-为什么乘以1会产生差异?

Javascript D3刻度-为什么乘以1会产生差异?,javascript,d3.js,Javascript,D3.js,我正在使用d3.js制作退休计算器/条形图。我构建了条形图以显示一个静态数组,然后将该图表连接到我的退休方程 当我将图表连接到计算器时,我的yScale是错误的,即使输入数组是相同的。我通过更改以下内容来修复它: constyscale=d3.scaleLinear().domain([0,d3.max(fvArr,(d)=>d[1])).range([height padding,0]) 为此: constyscale=d3.scaleLinear().domain([0,d3.max(fvA

我正在使用d3.js制作退休计算器/条形图。我构建了条形图以显示一个静态数组,然后将该图表连接到我的退休方程

当我将图表连接到计算器时,我的yScale是错误的,即使输入数组是相同的。我通过更改以下内容来修复它:

constyscale=d3.scaleLinear().domain([0,d3.max(fvArr,(d)=>d[1])).range([height padding,0])

为此:

constyscale=d3.scaleLinear().domain([0,d3.max(fvArr,(d)=>d[1]*1)]).range([height padding,0])


为什么会这样?代码笔是。

这里的问题是数据包含字符串,而不是数字

如果查看
fvArr
数组,您将看到:

[[0, "30000"], [1, "32800"], [2, "35768"] etc...]
所以,乘法在这里所做的只是将结果强制为一个数字。选中此项:


console.log(typeof(“5”*1))
您的示例代码笔链接无效,类似于某些转换。d[1]
类型是什么?如果它是一个字符串,可能
数字(d[1])
会修复它。你的笔可能是。请相应地编辑您的问题。