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