समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो एकल वर्णों की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है।
सरणी में केवल 4 वर्ण हो सकते हैं, वे हैं -
'N'→ उत्तर दिशा के लिए'S'→ दक्षिण दिशा के लिए'W'→ पश्चिम दिशा के लिए'E'→ पूर्व दिशा के लिए
प्रत्येक वर्ण उस विशेष दिशा में इकाई दूरी की चाल निर्दिष्ट करता है। और यदि सरणी में कहीं भी दो विपरीत दिशाएं, [('S' और 'N') या ('E' और 'W')] आसन्न रूप से दिखाई देती हैं, तो वे एक-दूसरे की गति को रद्द कर देते हैं। इसलिए, हमारे फ़ंक्शन को पूरी सरणी की परिणामी गति की दिशा ढूंढनी है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इनपुट
const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];
आउटपुट
const output = 'W';
आउटपुट व्याख्या
'N' और 'S' एक-दूसरे को रद्द कर देंगे, 'E' और 'W' एक-दूसरे को रद्द कर देंगे और फिर अंत में 'N' और 'S' फिर से एक-दूसरे को रद्द कर देंगे, केवल 'W' पीछे छोड़कर।
उदाहरण
निम्नलिखित कोड है -
const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];
const cancelDirections = (arr = []) => {
let str = arr.join('');
while (str.includes('NS') || str.includes('SN') || str.includes('EW') || str.includes('WE')) {
str = str.replace('NS', '');
str = str.replace('SN', '');
str = str.replace('EW', '');
str = str.replace('WE', '');
}
return str.split('');
};
console.log(cancelDirections(arr));
आउटपुट
['W']