d3.format千位分隔变量?

Bob*_*bby 4 javascript d3.js

你好我再次坚持d3 ......

我想知道如何在变量上使用千位分隔符我已经设法找到的所有示例似乎都在静态数据上.

这是我到目前为止所尝试的:

d3.csv("OrderValueToday.csv", function(obj) { 

var text = 'Today = £';
var totalSales = text + d3.format(",") + obj[0].Today;

svgLabel = d3.select("#label").append("h2")
 .text (totalSales);

});
Run Code Online (Sandbox Code Playgroud)

然而,它只是在网页上输出一个东西,这是它:

Today = £function (n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;    if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}20000
Run Code Online (Sandbox Code Playgroud)

所以我想要的是能够让totalSales价值有千分隔符,就像20,000我尝试过的其他任何东西一样.我已经读过这个https://github.com/mbostock/d3/wiki/Formatting但是没看到我能为我的场景做些什么.

任何帮助将不胜感激.干杯

jsh*_*ley 6

指定a d3.format返回格式化函数,然后必须将其作为函数调用,传入要格式化为参数的数字:

var myNumber = 22400;
d3.format(',')(myNumber); // returns '22,400'
Run Code Online (Sandbox Code Playgroud)

有时你会看到一个格式函数存储为变量,如下所示:

var commaFormat = d3.format(',');
commaFormat(1234567); // returns '1,234,567'
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您可以执行以下操作:

var totalSales = text + d3.format(',')(obj[0].Today);
Run Code Online (Sandbox Code Playgroud)