समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को एकमात्र आर्ग्युमेंट के रूप में लेता है।
सरणी मूल रूप से कुछ छात्रों द्वारा प्राप्त अंकों से बनी होती है, अंकों की सरणी के आधार पर, हमारा फ़ंक्शन रैंक की एक सरणी तैयार करके वापस करेगा जिसमें अंक सरणी arr में उनके अंक कितने उच्च हैं, इसके आधार पर संबंधित छात्रों की रैंक होनी चाहिए।
उदाहरण के लिए, सरणी arr में उच्चतम प्रविष्टि के लिए, आउटपुट सरणी में संबंधित प्रविष्टि 1 होनी चाहिए, दूसरी उच्चतम के लिए 2 और इसी तरह।
उदाहरण
यदि फ़ंक्शन का इनपुट है:
const arr = [50, 47, 39, 32, 31];
तो आउटपुट होना चाहिए:
const output = [1, 2, 3, 4, 5];
आउटपुट व्याख्या:
सरणी arr में अंक पहले से ही घटते क्रम में रखे गए हैं जिसका अर्थ है कि उच्चतम अंक सबसे पहले इंडेक्स पर हैं और इसी तरह।
कोड
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 ]