Javascript 什么';增量操作符在这里做什么?它是如何改变比例的?
上面的增量操作符在Javascript 什么';增量操作符在这里做什么?它是如何改变比例的?,javascript,d3.js,syntax,data-visualization,data-retrieval,Javascript,D3.js,Syntax,Data Visualization,Data Retrieval,上面的增量操作符在forEach块中做什么,具体来说: d3.tsv('data.tsv', (err, data) => { // clean the data data.forEach(d => { d.date = new Date(d.date); // x ++d[city]; // y` 它是如何改变比例的 完整代码:这种问题(“这东西在这里干什么?”)有时很难回答,因为我们不知道作者脑子里在想什么。但在这种情况下,我相信我有一种预感:作者只是错
forEach
块中做什么,具体来说:
d3.tsv('data.tsv', (err, data) => {
// clean the data
data.forEach(d => {
d.date = new Date(d.date); // x
++d[city]; // y`
它是如何改变比例的
完整代码:这种问题(“这东西在这里干什么?”)有时很难回答,因为我们不知道作者脑子里在想什么。但在这种情况下,我相信我有一种预感:作者只是错误地将字符串强制为数字
您可能知道,TSV数据是作为字符串加载和解析的,因此当字段中有数字时,我们必须强制它们。最常见的方法是,在row函数中:
d.foo = +d.foo;
return d;
正如您在本演示中所看到的,如果只执行+d.foo
操作,对象将不会发生任何变化:
const obj={
值:“42”
};
+目标价值;
控制台日志(obj)
log(typeof obj.value)
这让我整天都在思考如何在不使用任何=
的情况下正确地将字符串转换为数字。我愿意接受任何错误的表达。比赛开始了。@altocumulus我也考虑了逗号运算符。当使用行函数时,与使用前缀递增运算符相比,轴缺少顶值,为什么渲染不正确?编辑要添加的帖子images@user1076808因为增量解决方案不正确:最大值不是68,而是67。第二个图像是正确的输出。但是如果你问为什么轴没有显示数字67,这是一个完全不同的问题。我回滚了您的编辑。