问题描述
我需要编写一个函数,该函数需要一个数字并返回可以用相同数字进行的最大数字。
到目前为止,我已经得到:
function largestNumber(num) {
var digits = num.toString().split('');
var splitDigits = digits.map(Number);
splitDigits.sort(function(a,b){return b-a});
return splitDigits
}
这将以正确的顺序返回数字,但数字将被分割。例如。 123 = [3,2,1]
- 有没有办法我可以返回
321
的整数?
解决方法
您需要加入数组以返回数字:
function largestNumber(num) {
var digits = num.toString().split('');
var splitDigits = digits.map(Number);
splitDigits.sort(function(a,b){return b-a});
return Number(splitDigits.join(''));
}
,
您需要重新输入一个号码
const largestNumber = n => +[...n.toString(10)].sort((a,b)=>b-a).join('')
console.log('123 ->',largestNumber(123 )) // 321
console.log('152 ->',largestNumber(152 )) // 521
.as-console-wrapper { max-height: 100% !important; top: 0; }
检查参数是否为整数也是一个好主意
function largestNumber(n)
{
if (!Number.isInteger(n)) return 0
return +[...n.toString(10)].sort((a,b)=>b-a).join('')
}