समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो केवल तर्क के रूप में संख्याओं की एक सरणी, गिरफ्तारी लेता है।
सरणी में मूल रूप से कुछ छात्रों द्वारा बनाए गए अंक होते हैं, अंकों की सरणी के आधार पर, हमारे कार्य को रैंकों की एक सरणी तैयार करनी चाहिए और वापस करनी चाहिए जिसमें संबंधित छात्रों की रैंक इस आधार पर होनी चाहिए कि उनके अंक अंक सरणी में कितने उच्च हैं गिरफ्तार.
उदाहरण के लिए, सरणी गिरफ्तारी में उच्चतम प्रविष्टि के लिए, आउटपुट सरणी में संगत प्रविष्टि दूसरे उच्चतम के लिए 1, 2 होनी चाहिए और इसी तरह।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [50, 47, 39, 32, 31];
तब आउटपुट होना चाहिए -
const output = [1, 2, 3, 4, 5];
आउटपुट स्पष्टीकरण:
एरे एआर में अंक पहले से ही घटते क्रम में रखे गए हैं, जिसका अर्थ है कि उच्चतम अंक पहले इंडेक्स पर हैं और इसी तरह।
उदाहरण
इसके लिए कोड होगा -
const arr = [50, 47, 39, 32, 31]; const findRanks = (arr = []) => { const { length } = arr; let sortArray = arr.slice(); sortArray.sort((a,b) => b - a); const result = []; for(let i = 0; i < length; i++){ const j = sortArray.indexOf(arr[i]) result.push(j + 1); } return result; }; console.log(findRanks(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
[ 1, 2, 3, 4, 5 ]