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) ~~
按位非運算符