在D3.js中,如何只在5位以上的数字上添加逗号?

Phi*_*ord 0 d3.js

在D3.js(v5)中,您可以指定数字的格式,以便每三个数字添加逗号:

d3.format(',')(1000) // "1,000"
Run Code Online (Sandbox Code Playgroud)

或者确保它没有:

d3.format('d')(1000) // "1000"
Run Code Online (Sandbox Code Playgroud)

但是我只想在数字有五位或更多位时添加一个逗号,所以:

d3.format( ? )(1000)  // 1000
d3.format( ? )(10000) // 10,000
Run Code Online (Sandbox Code Playgroud)

我遗漏的格式说明符(?)是什么?

Mar*_*ark 5

我只是简单地将逻辑包装在你自己的函数中:

function myFormatter(d){
	return (""+d).length > 4 ? d3.format(',')(d) : d3.format('d')(d);
}

console.log(myFormatter(1000), myFormatter(10000))
Run Code Online (Sandbox Code Playgroud)
<script src="https://d3js.org/d3.v5.min.js"></script>
Run Code Online (Sandbox Code Playgroud)