समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो पहली और दूसरी आर्ग्युमेंट के रूप में दो सरणी arr1 और arr2 लेता है।
फ़ंक्शन को सरणियों का इंटरसेक्शन (दोनों के बीच सामान्य तत्व) ढूंढना चाहिए और यदि ऐसे तत्व हैं जो दोनों सरणियों में दो बार दिखाई देते हैं, तो हमें उन्हें अपने परिणाम सरणी में दो बार भी शामिल करना चाहिए।
उदाहरण
यदि फ़ंक्शन का इनपुट है:
const arr1 = [2, 7, 4, 6, 7, 4]; const arr2 = [7, 1, 9, 7, 4, 5];
तो आउटपुट होना चाहिए:
const output= [7, 7, 4];
कोड
const arr1 = [2, 7, 4, 6, 7, 4]; const arr2 = [7, 1, 9, 7, 4, 5]; const intersect = (arr1 = [], arr2 = []) => { const map = {}; arr1.forEach(a => { map[a] = map[a] ? map[a] + 1 : 1; }) const result = []; for(let key of arr2) { if(key in map && map[key] > 0) { result.push(key); map[key]--; } } return result; }; console.log(intersect(arr1, arr2));कोड व्याख्या:
हमने जो चरण उठाए वे हैं:
पहली सरणी (arr1) के माध्यम से लूप करके उसमें प्रत्येक संख्या की घटना ढूंढें।
दूसरी सरणी (arr2) के माध्यम से लूप करके ढूंढें कि क्या arr2 में तत्व मैप्ड arr1 में मौजूद है।
यदि यह मौजूद है, तो मैप्ड num1 में मान घटाएं और तत्व को परिणाम सरणी में डालें।
आउटपुट
कंसोल में आउटपुट होगा:
[7, 7, 4]