हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की दो सरणियां लेता है, मान लीजिए arr1 और arr2। फ़ंक्शन को सरणी के तत्वों के बीच प्रतिच्छेदन ढूंढना चाहिए। यानी, वे तत्व जो दोनों सरणियों में दिखाई देते हैं।
एकमात्र शर्त यह है कि यदि हम पहले एक तत्व को प्रतिच्छेदन के रूप में देख चुके हैं, तो हमें उस पर फिर से विचार नहीं करना चाहिए भले ही वह दोनों सरणियों में फिर से दिखाई दे।
उदाहरण के लिए -
यदि इनपुट सरणियां हैं -
const arr1 = [1, 5, 7, 3, 1]; const arr2 = [1, 7, 3, 1, 6];
तो आउटपुट सरणी होनी चाहिए -
const output = [1, 3, 7];
हालांकि, क्रम इतना महत्वपूर्ण नहीं है, जो अधिक महत्वपूर्ण है वह है पुनरावृत्त प्रतिच्छेदन पर विचार न करना।
उदाहरण
निम्नलिखित कोड है -
const arr1 = [1, 5, 7, 3, 1];
const arr2 = [1, 7, 3, 1, 6];
const uniqueIntersection = (arr1, arr2) => {
const map = new Set();
const res = [];
arr1.forEach(el => map.add(el));
arr2.forEach(el => {
if (map.has(el)) {
res.push(el);
map.delete(el);
}
});
return res;
};
console.log(uniqueIntersection(arr1, arr2));आउटपुट
कंसोल पर आउटपुट होगा -
[1, 7, 3]