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 함수를 작성해야 합니다. 함수는 가중치의 오름차순으로 숫자를 정렬해야 하며, 두 개의 숫자가 같은 가중치를 갖는 경우 실제 오름차순으로 배치해야 합니다.

예를 들어 -

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
]