我正在尝试使用函数重新排列输入数字,以便将单个数字重新排列为降序。
例如,234892
将导致 984322
。
这是我想出来的。
function descendingOrder(n){
var num = '';
for(var i = 0; i <= n.length + 1; i++){ // iterates through the number
for(var j = 9; j >= 0; j--){ // starts at 9 and checks numbers descending
if (j == n[i]){
num.push(n[i]); // checks if j == n[i] and if so, pushes to num
}
i = 0; // sets i back to 0 to rescan the number again
}
}
return num;
}
最佳答案
您可以将数字转换为字符串,拆分每个字符,对其进行排序并再次加入:
+(234892 + '').split('').sort((a, b) => a < b).join('');
var ordered = +(234892 + '').split('').sort((a, b) => a < b).join('');
document.getElementById('output').appendChild(document.createTextNode(ordered));
234892 → <span id="output"></span>
详细解释:
var str = 234892 + ''; // convert to string
var parts = str.split(''); // convert to array of characters
// sort
parts.sort(function(a, b) {
return a < b;
});
var finalStr = parts.join(''); // join characters to string
var finalNumber = +finalStr; // convert back to number
console.log(finalNumber); // 984322
关于javascript - 遍历数字并按降序重新排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958774/