数字根ソートアルゴリズムJavaScript
ある正の整数の数字根は、そのすべての数字の合計として定義されます。整数の配列が与えられます。 aの数字根がbの数字根以下の場合、aがbの前に来るようにソートする必要があります。 2つの数字が同じ数字根を持っている場合、(通常の意味で)小さい方が最初に来るはずです。たとえば、4と13は同じ数字根を持っていますが、4 <13であるため、両方が存在するすべての数字根の並べ替えでは、4が13の前になります。
たとえば、
for a = [13, 20, 7, 4], the output should be [20, 4, 13, 7].
この問題のコードを書いてみましょう-
これを2つの関数に分割します。数値の桁の合計をカウントする再帰関数と、桁の合計に基づいて要素を並べ替える並べ替え関数です。
このためのコードは-
になります例
const arr = [54, 23, 8, 89, 26]; const recursiveCount = (num, count = 0) => { if(num){ return recursiveCount(Math.floor(num/10), count+num%10); }; return count; }; const sorter = (a, b) => { const countDifference = recursiveCount(a) - recursiveCount(b); return countDifference || a - b; }; arr.sort(sorter); console.log(arr);
出力
コンソールの出力は-
になります[ 23, 8, 26, 54, 89 ]
-
JavaScriptのSort()メソッド
JavaScriptのsort()メソッドは、配列のソートに使用されます。並べ替えの順序は、アルファベット、数字、昇順、降順のいずれかです。 以下は、sort()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&
-
JavaScriptのArray.prototype.sort()。
JavaScript Array.prototype.sort()メソッドは、配列の並べ替えに使用されます。並べ替えの順序は、アルファベット、数字、昇順、降順のいずれかです。 以下は、Array.prototype.sort()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-