پرسش
سادهترین کد برای پیدا کردن اشتراک بین آرایهها در جاوااسکریپت چیست؟
Simplest code for array intersection in JavaScript
چطور میتونم سادهترین کد برای پیدا کردن اشتراک بین دو آرایه تو جاوااسکریپت رو بنویسم؟
مثلاً اگر بخوام با تابع intersection([1,2,3], [2,3,4,5])
مقدار [2, 3]
رو برگردونم، چطور باید این کار رو انجام بدم؟
1403/06/03
پاسخ
محمدامین سعیدی راد
برای پیدا کردن اشتراک بین دو آرایه تو جاوااسکریپت، میتونی از filter
و Set
استفاده کنی که هم ساده است و هم سریع:
function intersection(a, b) { const setA = new Set(a); return b.filter(value => setA.has(value)); } console.log(intersection([1, 2, 3], [2, 3, 4, 5])); // [2, 3]
این کد اول یک Set
از آرایه اول میسازه و بعد با استفاده از filter
، عناصری که تو آرایه دوم هم وجود دارن رو فیلتر میکنه. این روش برای کار با دادههای بزرگ کارایی خوبی داره و نتیجه نهایی شامل تمام مقادیر مشترک بین دوتا آرایه میشه.
اگر نیاز به حذف مقادیر تکراری داری، میتونی از Set
برای نتیجه هم استفاده کنی.
موفق و پیروز باشی.
پاسخ: 1403/06/03
آخرین آپدیت: 1403/07/29