हमें इंटीजर्स का एक ऐरे दिया गया है और बताया गया है कि सभी तत्व सम संख्या में बार आते हैं सिवाय एक तत्व के। हमारा काम उस तत्व को एक ही पुनरावृत्ति में ढूंढना है।
मान लीजिए यह नमूना ऐरे है:
[1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]
इस समस्या को हल करने से पहले, हमें बिटवाइज़ XOR (^) ऑपरेटर के बारे में थोड़ा समझने की जरूरत है।
XOR ऑपरेटर TRUE लौटाता है यदि दोनों ऑपरेंड एक-दूसरे के पूरक हैं और FALSE लौटाता है यदि दोनों ऑपरेंड समान हैं।
XOR ऑपरेटर का ट्रुथ टेबल:
0 ^ 0 → 0 0 ^ 1 → 1 1 ^ 0 → 1 1 ^ 1 → 0
यदि हम इस व्यवहार को ध्यान से देखें, तो हम देख सकते हैं कि जब XOR ऑपरेटर का उपयोग सटीक समान मानों (जैसे 12^12) पर किया जाता है, तो यह हमेशा FALSE या 0 लौटाता है। दूसरे शब्दों में, इसका उपयोग उन मानों को नकारने के लिए किया जा सकता है जो सम संख्या में बार आते हैं। और यही हम चाहते हैं।
इसे नीचे दिए गए कोड में लिखते हैं:
उदाहरण
const sampleArray = [1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]; console.log(sampleArray.reduce((a, b) => a ^ b));
यह प्रत्येक तत्व पर पुनरावृति करता है और उन तत्वों को नकारता रहता है जो सम संख्या में बार आते हैं, और केवल वही तत्व लौटाता है जो विषम संख्या में बार आता है।
आउटपुट
कंसोल आउटपुट होगा:
1