我将大数字作为输入,并希望以千位(每3位数)的每一步显示一个小空格。所以我正在寻找一个最大的数组。三位数作为输出。
示例:
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
];
}
解决方案2)
function numberToThreeDigitArray(number) {
return number.toString().split('').reverse().map((char, i) => {
return i !== 0 && i % 3 === 0
? ' ' + char
: char;
}).join('').split('').reverse().join('').split(' ');
}
答案 0 :(得分:0)
number.toLocaleString().split(',').map(num => +num)
应该为你做。
示例:
const arr = (24521280).toLocaleString().split(',').map(num => +num)
// [24, 521, 280]
// or
function getNumber(n) {
return n.toLocaleString().split(',').map(num => +num)
}