समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की एक सरणी लेता है, एआर, एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को इस सरणी को इस तरह से सॉर्ट करना चाहिए कि सॉर्ट करने के बाद, तत्वों को इस पैटर्न का पालन करना चाहिए -
arr[0] < arr[1] > arr[2] < arr[3]....
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [1, 5, 1, 1, 6, 4];
तब आउटपुट हो सकता है (एक से अधिक संभावित उत्तर भी हो सकते हैं) -
const output = [2, 3, 1, 3, 1, 2];
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 5, 1, 1, 6, 4]; const unevenSort = (arr = []) => { arr.sort((a, b) => a - b); let mid = Math.floor(arr.length / 2); if(arr.length % 2 === 1){ mid += 1; }; let even = arr.slice(0, mid); let odd = arr.slice(mid); for(let i = 0; i < arr.length; i++){ if(i % 2 === 0){ arr[i] = even.pop(); }else{ arr[i] = odd.pop(); }; }; }; unevenSort(arr); console.log(arr);
आउटपुट
कंसोल में आउटपुट होगा -
[ 1, 6, 1, 5, 1, 4 ]