چگونه آرایه‌ها را در JavaScript ادغام کنیم؟

چگونه آرایه‌ها را در JavaScript ادغام کنیم؟

همواره در کد زدن، انتخاب هوشمندانهٔ فانکشن‌ها و استفاده از ترفندها می‌تواند کدهای کوتاه‌تر و واضح‌تری را به‌وجود بیاورد و شما را برنامه‌نویس حرفه‌ای نشان دهد. در همین راستا، در این مقاله به معرفی فانکشنی جهت ادغام کردن آرایه‌ها در جاوااسکریپ به روشی بهتر از آنچه مرسوم است پرداخته‌ایم.

جاوااسکریپت یک فانکشن یا تابع ساده برای ادغام آرایه‌ها به اسم concat دارد اما این در حالی است که این تابع، خود یک آرایۀ جدید تولید می‌کند. برای مثال داریم:

var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
console.log(array1.concat(array2)); // result is: [1, 2, 3, 4, 5, 6]

همان‌طور که گفته شد، تابع concat اصلاً کاری به آرایه‌های قبلی نداشته و یک آرایهٔ جدید تولید می‌کند. حال اگر می‌خواهید یک آرایه دومی را با آرایه‌ای که وجود دارد ادغام کنید بدون آن‌که دست به ساخت آرایه‌ای جدید بزنید، می‌توانید از ترفند زیر استفاده کنید:

var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
Array.prototype.push.apply(array1, array2);

console.log(array1); // result is: [1, 2, 3, 4, 5, 6]

همان‌طور که مشاهده می‌شود، ۲ آرایه داریم به اسامی array1 و array2 که بااستفاده از متد Array.prototype و push در این مثال، آرایۀ دوم را با آرایۀ اول به‌سادگی ادغام کرده بدین شکل که آرایۀ دوم بااستفاده از فانکشن push، به ادامهٔ آرایه اول متصل شده است.

در پاسخ به این سؤال که مشکل رویکرد اول چیست، بایستی بگوییم فرض کنیم که array1 دارای ۱۰۰۰۰ آیتم باشد و array2 هم به همین میزان آیتم داشته باشد که در چنین شرایطی خروجی که کلاً آرایه‌ای جدید است، حاوی ۲۰۰۰۰ آیتم خواهد بود که در چنین شرایطی ممکن است با کمبود حافظه مواجه شویم! برای همین منظور، توصیه می‌شود که روش دوم به‌ کار گرفته شود که به‌جای افزودن یک آرایهٔ جدید، فرایند ادغام را روی یکی از آرایه‌های موجود انجام می‌دهد.

منبع


سحر شاکر