0
我得到大数字作为输入,并且希望以千位(每3位数)的每一步显示一个小空间。所以我正在寻找一个最大数组。三位数字作为输出。将数字转换为Javascript中的三位数字的列表
实例:
Input: 10 Output: [10]
Input: 1234 Output: [1, 234]
Input: 24521280 Output: [23, 521, 280]
如果输出数组包含字符串或数字不要紧。
什么是Javascript ES6中最优雅(全面/短小)的解决方案?
我写了两个可行的解决方案,但我觉得他们是过于复杂或者说,我失去了一些东西:
解决方法1)
function numberToThreeDigitArray(number) {
if (number/1000 < 1) return [number];
return [
...numberToThreeDigitArray(Math.floor(number/1000)),
number % 1000
];
}
方案二)
function numberToThreeDigitArray(number) {
return number.toString().split('').reverse().map((char, i) => {
return i !== 0 && i % 3 === 0
? ' ' + char
: char;
}).join('').split('').reverse().join('').split(' ');
}
你失踪的事情是,从而根据用户的区域设置一个数字是一个解决的问题:http://stackoverflow.com/questions/2901102/how-to-print -a-number-with-commas-as-thousands-separator-in-javascript – Jamiec
'number.toLocaleString()。split(“,”)。map(x => parseInt(x));' – halfo
@Jamiec Aaah! !与正则表达式的解决方案是我正在寻找 – kadrian