एक संख्या का वजन उस संख्या के अंकों का योग होता है। उदाहरण के लिए -
100 का वजन 1 है 22 का वजन 4 है 99 का वजन 18 है 123 का वजन 6 है
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। फ़ंक्शन को संख्याओं को उनके वजन के बढ़ते क्रम में क्रमबद्ध करना चाहिए, और यदि दो संख्याओं का वजन समान होता है, तो उन्हें वास्तविक बढ़ते क्रम में रखा जाना चाहिए।
उदाहरण के लिए - 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 ]