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

JavaScriptでの数字の合計に基づいて数値を並べ替える


問題

最初で唯一の引数として、正の整数の配列arrを受け取るJavaScript関数を作成する必要があります。

この関数は、桁の合計が最も多い数値が最初に来て、次に桁の合計が小さい数値が続くように、入力配列をソートする必要があります。

たとえば、関数への入力が-

の場合

入力

const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565];

出力

const output = [565, 78, 76, 57, 8, 34, 5, 13, 101, 1];

出力の説明

565の数字の合計は16で、次に78と76、101と1の数字の合計はそれぞれ2と1であるため、

以下はコードです-

const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565];
const addDigits = (num, sum = 0) => {
   if(num){
      return addDigits(Math.floor(num / 10), sum + (num % 10));
   };
   return sum;
};
const sortByDigitSum = (arr = []) => {
   arr.sort((a, b) => {
      return addDigits(b) - addDigits(a);
   });
   return arr;
};
sortByDigitSum(arr);
console.log(arr);

出力

[ 565, 78, 76, 57, 8, 34, 5, 13, 101, 1 ]

  1. JavaScriptで合計のバランスを取るための配列インデックス

    問題 整数の配列arrを最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。 この関数は、左側の要素の合計が右側の要素の合計と等しくなるように、配列からそのようなインデックスを1つ選択して返す必要があります。配列にそのようなインデックスが存在しない場合は、-1を返す必要があります。 たとえば、関数への入力が-の場合 入力 const arr = [1, 2, 3, 4, 3, 2, 1]; 出力 const output = 3; 出力の説明 インデックス3の両側の要素の合計が等しいため(6)。 例 以下はコードです- const arr =

  2. JavaScriptの要素の頻度の増加に基づいて配列を並べ替える

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 配列arrには、いくつかの重複が含まれている可能性があります。この関数は、出現回数が最も少ない要素が最初に配置され、次に頻度が高くなる要素が配置されるように配列を並べ替えることを想定しています。 2つの要素が配列に同じ回数出現する場合は、昇順で配置する必要があります。 たとえば、関数への入力が 入力 const arr = [5, 4, 5, 4, 2, 1, 12]; 出力 const output = [1, 2, 12, 4, 4, 5, 5]; 出力の説明