সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্ট হিসাবে দুটি অ্যারে, 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) দিয়ে লুপ করুন। এটিতে।
-
ম্যাপ করা arr1-এ arr2-এর উপাদান আছে কিনা তা খুঁজে বের করতে দ্বিতীয় অ্যারে(arr12) দিয়ে লুপ করুন।
-
যদি এটি বিদ্যমান থাকে, তাহলে ম্যাপ করা num1-এ মান কমান এবং উপাদানটিকে ফলাফল অ্যারেতে পুশ করুন।
আউটপুট
এবং কনসোলে আউটপুট হবে −
[7, 7, 4]