समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो सकारात्मक पूर्णांक की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में।
हमारे फ़ंक्शन को इनपुट ऐरे को इस तरह से सॉर्ट करना चाहिए कि जिस संख्या में अंकों का योग सबसे अधिक हो, उसके बाद कम अंकों के योग वाली संख्याएँ आती हैं।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इनपुट
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 ]