آموزش نحوۀ حذف اِلِمان‌های تکراری آرایه‌ها در جاوااسکریپت


در این مقاله قصد داریم تا به بررسی چند روش متفاوت به منظور حذف یکسری آیتم تکراری از میان اِلِمان‌های یک آرایه در زبان برنامه‌نویسی جاوااسکریپت بپردازیم به طوری که در نهایت یک آرایه با اِلِمان‌های منحصربه‌فرد داشته باشیم (جهت آشنایی با مفهوم آرایه‌ و کاربردهای آن در زبان برنامه‌نویسی جاوااسکریپت توصیه می‌کنیم به مقالۀ آشنایی با مفهوم آرایه و روش‌های ساخت آن مراجعه نمایید.)

به‌کارگیری آبجکت Set
یکی از روش‌های بسیار ساده و رایج به منظور حذف آیتم‌های تکراری از میان اِلِمان‌های یک آرایه به‌کارگیری آبجکت Set است. در واقع، کیورد Set در نسخۀ ES6 از این زبان معرفی شده و به منظور ساخت آبجکت‌های جدیدی مورد استفاده قرار می‌گیرد که با به‌کارگیری آن‌ها می‌توان یکسری مقدار منحصربه‌فرد با انواع مختلف را ذخیره و نگهداری کرد.

در همین راستا، ابتدا یک آبجکت جدید از نوع Set ساخته و آرایۀ مد نظر خود را به عنوان آرگومان ورودی به آن می‌دهیم و همان‌طور که اشاره کردیم، این آبجکت صرفاً مقادیر منحصربه‌فرد را شامل می‌شود که از داخل آن تمامی اِلِمان‌های تکراری از آرایۀ مذکور حذف می‌شوند و در گام بعدی آبجکت حاصله را مجدداً به آبجکتی از جنس آرایه تبدیل می‌کنیم که برای این منظور نیز اپراتور ... را مورد استفاده قرار می‌دهیم که اصطلاحاً Spread نامیده می‌شود (جهت آشنایی با سایر اپراتورها در این زبان می‌توانید به مقالۀ درآمدی بر اپراتورها در جاوااسکریپت مراجعه کنید.)

حال با توجه به آنچه گفته شد، کد زیر را به منظور حذف اِلِمان‌های تکراری از یک آرایۀ دلخواه و با به‌کارگیری آبجکتی از نوع Set مد نظر قرار می‌دهیم:

const array = ['a', 1, 2, 'a', 'a', 3];
const uniqueSet = new Set(array);
const backToArray = [...uniqueSet];

در کد فوق، ابتدا آرایه‌ای متشکل از اِلِمان‌های مختلف تعریف کرده و آن را به متغیری تحت عنوان array منتسب کرده‌ایم و در ادامه آبجکت جدیدی از نوع Set ساخته و آرایۀ فوق‌الذکر را به عنوان آرگومان ورودی به آن داده‌ایم؛ بدین ترتیب آبجکت Set آیتم‌های تکراری در آرایۀ مد نظر را حذف کرده و خروجی را در متغیری تحت عنوان uniqueSet نگهداری می‌کند. از این پس آبجکتی از نوع Set و متشکل از چند اِلِمان منحصربه‌فرد داریم که در سطر بعد با به‌کارگیری اپراتور ... نوع آن را به آرایه تغییر داده و نتیجه را در متغیری به نام backToArray ذخیره کرده‌ایم که خروجی حاصل از کد فوق بدین ترتیب خواهد بود:

['a', 1, 2, 3]

همان‌طور که می‌بینید، آرایه‌ای متشکل از اِلِمان‌های منحصربه‌فرد داریم. همچنین به منظور تبدیل آبجکت Set به آبجکتی از جنس آرایه نیز می‌توان متد از پیش تعریف‌شدۀ ()Array.from را مورد استفاده قرار داد که هر یک از اِلِمان‌های آرگومان ورودی را به آبجکتی از جنس آرایه تبدیل می‌کند که برای این منظور کد مثال قبل را بدین صورت تغییر می‌دهیم:

const array = ['a', 1, 2, 'a', 'a', 3];
Array.from(new Set(array));

در کد فوق، آرایه‌ای متشکل از چند اِلِمان مختلف تعریف کرده و آن را به متغیری تحت عنوان array منتسب کرده‌ایم و در ادامه با به‌کارگیری کیورد new آبجکتی از نوع Set ساخته و آرایهٔ تعریف‌شده را به عنوان آرگومان ورودی به آن داده‌ایم که منجر بدین می‌شود تا اِلِمان‌های تکراری از آرایۀ مد نظر حذف شوند که در ادامه آبجکتی از نوع Set و متشکل از چند اِلِمان منحصربه‌فرد داریم که خروجی حاصل از آن را به متد ()Array.from می‌دهیم تا در نهایت آرایه‌ای از اِلِمان‌های غیرتکراری و منحصربه‌فرد داشته باشیم. خروجی حاصل از کد فوق بدین ترتیب خواهد بود:

['a', 1, 2, 3]

همانطور که ملاحظه می‌کنید، در این مورد نیز نتیجۀ حاصل آبجکتی از جنس آرایه و متشکل از اِلِمان‌های منحصربه‌فرد می‌باشد.

این بخش از محتوا مخصوص کاربرانی است که ثبت‌نام کرده‌اند.
جهت مشاهدهٔ این بخش از محتوا لاگین نمایید.

جمع‌بندی
در این مقاله به بیان برخی از روش‌های رایج جهت حذف اِلِمان‌های تکراری از آرایه‌ها در زبان جاوااسکریپت پرداختیم و نحوۀ پیاده‌سازی هر یک را در قالب مثالی کاربردی بررسی کردیم اما توجه داشته باشیم که روش‌های بسیاری برای این منظور می‌توان پیاده‌سازی کرد که متناسب با موقعیت‌های مختلف به کار گرفته می‌شوند و نیازمند مطالعه، تمرین و تحقیق بیشتر هستند.

منبع