मान लीजिए, हमारे पास इस तरह की संख्याओं की एक सरणी है -
const arr = [1, 6, 3, 1, 3, 1, 6, 3];
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले और एकमात्र तर्क के रूप में एक ऐसी सरणी लेता है। फिर फ़ंक्शन को सरणी में ऐसे सभी नंबरों को देखना चाहिए जो विषम संख्या में दिखाई देते हैं (केवल एक बार को छोड़कर)।
उदाहरण के लिए,
उपरोक्त सरणी में, संख्या 1 और 3 दोनों 3 बार (विषम) दिखाई देते हैं, इसलिए हमारे फ़ंक्शन को इन दोनों संख्याओं की तीसरी आवृत्ति को हटा देना चाहिए।
और आउटपुट ऐरे इस तरह दिखना चाहिए -
const output = [1, 6, 3, 1, 3, 6];
हम प्रत्येक संख्या की घटनाओं का ट्रैक रखने के लिए एक हैशमैप तैयार करेंगे, और अंत में हम उस संख्या के अंतिम अवसर को हटाने के लिए मानचित्र पर पुनरावृति करेंगे जो विषम संख्या में दिखाई देती है।
हमारे मानचित्र की प्रत्येक कुंजी में एक सरणी मान होगा, जिसमें से पहला तत्व उस तत्व के प्रकट होने की संख्या होगी और दूसरा वह अंतिम सूचकांक होगा जिस पर वह दिखाई दिया।
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 6, 3, 1, 3, 1, 6, 3]; const removeOddOccurence = (arr =[]) => { // keeping the original array unaltered const copy = arr.slice(); const map = {}; arr.forEach((num, ind) => { if(map.hasOwnProperty(num)){ map[num][0]++; map[num][1] = ind; }else{ map[num] = [1, ind]; }; }); for(const key in map){ const [freq, index] = map[key]; if(freq !== 1 && freq % 2 === 1){ copy.splice(index, 1, ''); }; }; return copy.filter(el => el !== ''); }; console.log(removeOddOccurence(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
[1, 6, 3, 1, 3, 6]