डिजिट रूट
एक पॉजिटिव इंटीजर का डिजिट रूट उसके सभी डिजिट्स के योग के रूप में परिभाषित किया गया है।
हमें एक JavaScript फ़ंक्शन लिखना है जो इंटीजर्स के ऐरे को लेता है। फ़ंक्शन को इस तरह सॉर्ट करना चाहिए कि यदि a, b से पहले आता है तो a का डिजिट रूट b के डिजिट रूट से कम या बराबर हो। यदि दो नंबर्स का डिजिट रूट समान है, तो छोटा वाला (सामान्य अर्थ में) पहले आना चाहिए।
उदाहरण के लिए, 4 और 13 का डिजिट रूट समान है, हालांकि 4 < 13 इसलिए 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 ]