Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで数値の重みに従って並べ替える


数値の重みは、その数値の桁の合計です。例-

The weight of 100 is 1
The weight of 22 is 4
The weight of 99 is 18
The weight of 123 is 6

数値の配列を受け取るJavaScript関数を作成する必要があります。関数は、重みの昇順で数値を並べ替える必要があり、2つの数値が同じ重みを持っている場合は、実際の昇順で配置する必要があります。

たとえば-

50と23の重みは同じであるため、実際の昇順を維持するには、23を50の前に配置する必要があります(重みが等しい場合のみ)

このためのコードは-

になります
const arr = [2, 1, 100, 56, 78, 3, 66, 99, 200, 46];
const calculateWeight = (num, sum = 0) => {
   if(num){
      return calculateWeight(Math.floor(num / 10), sum + (num % 10));
   };
   return sum;
};
const sorter = (a, b) => {
   return calculateWeight(a) − calculateWeight(b) || a − b;
}
arr.sort(sorter);
console.log(arr);

出力

そして、コンソールの出力は-

になります
[
   1, 100, 2, 200, 3,
   46, 56, 66, 78, 99
]

  1. Math.min()関数JavaScript

    Mathオブジェクトのmin()関数は複数の数値を受け入れ、それらの中で最大の数値を返します。 この関数に単一の数値を渡すと、同じ数値が返されます また、引数を渡さないと、無限大が返されます。 構文 その構文は次のとおりです Math.min(48, 148, 3654); 例 <html> <head>    <title>JavaScript Example</title> </head> <body>    <script type="text/javas

  2. JavaScript番号の例

    以下はJavaScriptの数字の例です- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>    body