숫자 루트
양의 정수의 자릿수 근은 모든 자릿수의 합으로 정의됩니다.
정수 배열을 취하는 JavaScript 함수를 작성해야 합니다. 함수는 a가 b보다 앞에 오면 a의 자릿수 근이 b의 자릿수 근보다 작거나 같도록 정렬해야 합니다. 두 숫자의 자릿수 근이 같으면 작은 숫자(일반적인 의미에서)가 먼저 와야 합니다.
예를 들어, 4와 13은 동일한 자릿수 루트를 갖지만 4 <13이므로 둘 다 있는 모든 digitRoot 정렬에서 4가 13 앞에 옵니다.
예를 들어 -
입력 배열이 -
인 경우const arr = [13, 20, 7, 4];
그러면 출력은 다음과 같아야 합니다. -
const output = [20, 4, 13, 7];
예시
const arr = [13, 20, 7, 4]; const digitSum = (num, sum = 0) => { if(num){ return digitSum(Math.floor(num / 10), sum + (num % 10)); }; return sum; }; const digitalSort = (arr = []) => { const sorter = (a, b) => { return (digitSum(a) - digitSum(b)) || (a - b); }; arr.sort(sorter); }; digitalSort(arr); console.log(arr);
출력
이것은 다음과 같은 출력을 생성합니다 -
[ 20, 4, 13, 7 ]