সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্ট হিসাবে দুটি অ্যারে, 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]