javascript - D3 比例 - 为什么乘以 1 会有所不同?

标签 javascript d3.js

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

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

const yScale = d3.scaleLinear().domain([0, d3.max(fvArr,(d)=>d[1])]).range([height-padding,0]);

为此:

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

为什么这样做? Codepen 是 here .

最佳答案

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

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

[[0, "30000"], [1, "32800"], [2, "35768"] etc...]

所以,乘法在这里所做的只是将结果强制转换为数字。检查这个:

console.log(typeof("5" * 1))

这与使用一元加号相同,后者更常见:

console.log(typeof(+"5"))

关于javascript - D3 比例 - 为什么乘以 1 会有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139632/

相关文章:

javascript - D3.js 更新堆积条形图

javascript - 延迟脚本是否在 DOMContentLoaded 事件之前执行?

javascript - 使用 jstree 格式化目录结果

javascript - 重置表单后验证消息未删除

javascript - 我想从 Cakefile 运行 d3

javascript - scaleTime 最小刻度值

javascript - D3 绑定(bind)嵌套 JSON 文档的数据

Javascript 树搜索算法,返回包含找到的术语及其父项的树的子集

javascript - 使用javascript检测浏览器打开的其他窗口的URL

javascript - D3.js - 将文本旋转到垂直