متدهای slice و splice - آزمون آنلاین جاوااسکریپت
تفاوت متدهای slice و splice در جاوااسکریپت
این آزمون در مورد زبان برنامه نویسی جاوااسکریپت هست که قراره بهت کمک کنه با دو متد مهم و پرکاربرد در کار با آرایه ها، یعنی متد slice و متد splice، بیشتر آشنا بشی. اغلب برنامه نویسا این دو تا رو با هم اشتباه می گیرن، اما این کوییز بهت کمک می کنه که فرقشون رو خیلی خوب بفهمی.
آرایه ها در جاوااسکریپت
اول از همه بیا یه مرور کوچیک روی آرایه ها داشته باشیم. آرایه ها توی جاوااسکریپت مثل یه جعبه مرتب و منظم هستن که می تونی اطلاعات مختلف رو توش ذخیره کنی.
هر کدوم از این اطلاعات یه جایگاه مشخص دارن که بهش می گیم ایندکس. ایندکس ها از صفر شروع می شن. مثلا، اگر یه آرایه داشته باشی که توش اسم چند تا میوه رو گذاشتی، اولین میوه تو ایندکس صفر و دومی تو ایندکس یک قرار می گیره.
const fruits = ['apple', 'banana', 'orange'];
// 'apple' در ایندکس 0
// 'banana' در ایندکس 1
// 'orange' در ایندکس 2
تفاوت اصلی بین slice و splice
اینجاست که قضیه یکم جالب می شه. شاید اسم این دو تا متد شبیه هم به نظر برسه، اما کارشون کاملا با هم فرق داره. متد slice مثل اینه که یه کپی از یه بخش از آرایه اصلیت بگیری، بدون اینکه آرایه اصلی رو تغییر بدی.
اما متد splice مثل اینه که آرایه رو ببری و یه تیکه ازش رو حذف کنی، یا بهش چیزی اضافه کنی، یا حتی یه تیکه رو با یه چیز دیگه جایگزین کنی. به عبارتی، splice آرایه اصلی رو دستکاری می کنه.
با انجام این کوییز می تونی میزان مهارت و تسلط خودت رو درباره متدهای slice و splice بسنجی و همزمان اطلاعات خوبی در مورد این متدها به دست بیاری.
سوالات این آزمون در مورد همین دو متد هستن، مثلا اینکه هر کدوم چه پارامترهایی می گیرن، چه خروجی ای دارن، و اینکه چطور می شه ازشون استفاده کرد.
چند تا مثال از سوالاتش رو می گم تا بدونی با چه چیزایی روبرو می شی:
- سوال: کد زیر چه خروجی ای تولید می کنه؟
const arr = [1, 2, 3, 4, 5]; const newArr = arr.slice(1, 3); console.log(newArr); - سوال: چه کدی باید بنویسی تا با استفاده از متد splice، عدد 3 و 4 از آرایه زیر حذف بشن؟
const arr = [1, 2, 3, 4, 5]; // کد خودت رو اینجا بنویس
با شرکت توی این آزمون می فهمی که چطور باید از هر کدوم از این متدها استفاده کنی و تو چه مواقعی هر کدوم به دردت می خورن.
نکات مهم و کاربردها
خب حالا که فرق اصلی رو فهمیدی، بیا یه سری نکات و کاربردها رو با هم بررسی کنیم:
متد slice
این متد یک کپی کم عمق (shallow copy) از بخشی از آرایه اصلی برمی گردونه و آرایه اصلی رو تغییر نمیده.
- کاربردها:
- استخراج بخشی از یک آرایه بدون تغییر آرایه اصلی.
- کپی کردن کل آرایه.
متد splice
این متد آرایه اصلی رو تغییر می ده و یک آرایه جدید شامل آیتم های حذف شده برمی گردونه.
- کاربردها:
- حذف عناصر از آرایه.
- اضافه کردن عناصر جدید به آرایه.
- جایگزین کردن عناصر موجود با عناصر جدید.
مقایسه دقیق تر
برای اینکه این تفاوت ها رو بهتر درک کنی، یه جدول ساده برات آماده کردم. این جدول به صورت خلاصه و مفید، ویژگی های کلیدی این دو متد رو مقایسه می کنه:
| ویژگی | متد slice | متد splice |
|---|---|---|
| آرایه اصلی تغییر می کند؟ | خیر | بله |
| خروجی متد چیست؟ | یک آرایه جدید با عناصر کپی شده | یک آرایه شامل عناصر حذف شده |
| تعداد پارامترها | دو پارامتر (شروع، پایان) | سه یا بیشتر (شروع، تعداد حذف، آیتم های جدید) |
این مقایسه بهت کمک می کنه تا با یک نگاه بفهمی که هر کدوم از این متدها برای چه کاری ساخته شدن.
شروع کن
حالا که با این دو متد آشنا شدی، وقتشه که دانسته هات رو محک بزنی. روی دکمه شروع کلیک کن و تو این آزمون که در مورد زبان برنامه نویسی جاوااسکریپت هست شرکت کن.