Your task is to make a function that can take any non-negative integer as a argument and return it with it's digits in descending order. Essentially, rearrange the digits to create the highest possible number.javascript
Examples:
Input: 21445 Output: 54421
Input: 145263 Output: 654321
Input: 1254859723 Output: 9875543221java
题目:将一个正整数里的数字按照降序排列。git
思路:数组
将数字转化为字符串浏览器
将字符串变成数组函数
将数组中的元素按照降序排列,而后拼接成字符串编码
将字符串转化为数字code
function descendingOrder(n){ var str = n.toString(); str = str.split('').sort(function(x, y) { return y-x }); return parseInt(str.join('')) }
function descendingOrder(n){ return parseInt(String(n).split('').sort().reverse().join('')) }
(1) .toString([radix])
能够将除了 null
和 undefined
的对象都转换为字符串对象
radix: 可选参数,表示进制排序
var a; a.toString(); // Uncaught TypeError: Cannot read property 'toString' of undefined a = null; a.toString(); // Uncaught TypeError: Cannot read property 'toString' of null a = 10; a.toString(2); // "1010" a = {name: 'Alice', age: '1'}; a.toString(); // "[object Object]"
(2) String()
能够将 null
和 undefined
转换为字符串,可是无法转进制字符串
var b; String(b); // "undefined" b = null; String(b); // "null" b = {name: 'Alice', age: '1'}; String(b); // "[object Object]"
(1) arrayObject.sort([sortby])
传入比较函数sortby,直接降序排列
当参数 sortby
不存在时是按照字符编码的顺序进行排序。
若提供比较函数 function(x, y){ return 返回值; }
返回值 <= 0: x, y 不变
返回值 > 0: x, y 交换位置
(2) sort()
升序排列后,再利用reverse()
反序
(1) parseInt(string, [radix])
radix:可选参数,表示进制。在不指定radix的状况下:
若是字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).
若是字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪一个基数由实现环境决定。ECMAScript 5 规定使用10,可是并非全部的浏览器都遵循这个规定。所以,永远都要明确给出radix参数的值。
若是字符串 string 以其它任何值开头,则基数是10 (十进制)。
若是第一个字符不能被转换成数字,parseInt返回NaN。
(2) Number(str)
: 若传入的字符串中含有非数字字符,将返回NaN
。
(3) +
运算符,强制类型转换
除此以外,将String转换为Number还可以使用
(4) 运算符 -
、*
、/
均可以进行强制类型转换
(5) ~~
按位非运算符