हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। फ़ंक्शन के इनपुट के रूप में दी गई सरणी में दो विशेष गुण होते हैं -
-
सरणी की लंबाई हमेशा एक सम संख्या होगी।
-
सम संख्याओं की संख्या और सरणी में विषम संख्याओं की संख्या हमेशा बराबर होगी (अर्थात, दोनों सरणी की लंबाई के आधे के बराबर हैं)
फ़ंक्शन को सरणी के तत्वों को इस तरह से फेरबदल करना चाहिए कि सभी सम मान सम सूचकांकों पर कब्जा कर लें और सभी विषम मान विषम सूचकांकों पर कब्जा कर लें।
ध्यान दें कि इस समस्या के एक से अधिक सही समाधान हो सकते हैं, हमें उनमें से किसी एक को खोजना होगा।
उदाहरण
निम्नलिखित कोड है -
const arr = [1, 2, 3, 4, 5, 6]; const arrangeToIndices = (arr = []) => { let [even, odd] = [0, 1]; while (even < arr.length && odd < arr.length) { if (arr[even] % 2 === 1 && arr[odd] % 2 === 0) { [arr[even], arr[odd]] = [arr[odd], arr[even]]; [even, odd] = [even + 2, odd + 2]; } else { if (0 === arr[even] % 2){ even += 2; }; if (1 === arr[odd] % 2){ odd += 2 }; }; }; return arr; }; console.log(arrangeToIndices(arr));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
[ 2, 1, 4, 3, 6, 5 ]