javascriptpush, pop, shift and unshiftافزودن و حذف اعضای آرایه در جاوااسکریپت
با push، pop، shift و unshift در جاوااسکریپت ابتدا و انتهای آرایه را مدیریت کنید؛ تغییر منبع و تفاوت طول جدید با عضو حذفشده را یاد بگیرید.
مفهوم به زبان ساده
برای نگهداری کارهای یک صف یا درسهای انتخابشده، باید بدانیم تغییر در کدام سر فهرست انجام میشود. push یک یا چند عضو به انتها اضافه میکند و unshift در ابتدا میافزاید. pop آخرین عضو و shift نخستین عضو را برمیدارند. هر چهار روش، خود آرایه را تغییر میدهند؛ اگر منبع باید دستنخورده بماند، ابتدا قرارداد کپیکردن را بررسی کنید.
مقدار برگشتی این روشها یکسان نیست. push و unshift طول جدید آرایه را میدهند، ولی pop و shift مقدار عضو حذفشده را برمیگردانند. در مثال، دو کار به دو سر صف اضافه و بعد همان دو کار برداشته میشوند. در پایان، تنها کار اولیه باقی میماند.
وقتی آرایه خالی است، pop و shift نتیجهٔ undefined دارند. اگر undefined عضو مجاز دادهٔ شما باشد، برای تشخیص خالیبودن، طول را هم در نظر بگیرید. تعریف آرایه با const استفاده از این روشها را ممنوع نمیکند، چون اتصال نام به همان آرایه حفظ میشود. برای تمرین، همهٔ عضوها را بردارید و رفتار یک حذف اضافی را پیشبینی کنید. استفاده از delete برای حذف عضو فهرست معمولاً مناسب نیست، چون ممکن است خانهٔ خالی باقی بگذارد.
کجا به کار میآید؟
- مدیریت یک صف کوچک از کارهای آموزشی
- برداشتن آخرین انتخاب و استفاده از مقدار حذفشده
از تعریف تا یک مثال واقعی
const queue = ['خواندن'];
console.log(queue.push('تمرین'));
console.log(queue.unshift('شروع'));
console.log(queue.pop());
console.log(queue.shift());
console.log(queue.join(', '));
console.log(queue.length);
2 3 تمرین شروع خواندن 1
این مثال چطور کار میکند؟
push تمرین را به انتها میافزاید و طول دو را میدهد.
unshift شروع را به ابتدا میافزاید و طول سه را میدهد.
pop و shift بهترتیب عضو انتهایی و ابتدایی را برمیگردانند.
پس از دو حذف، آرایه فقط خواندن را دارد.
اشتباه رایج
نوشتن queue = queue.push(value) فهرست را با طول عددی جایگزین میکند؛ push آرایه برنمیگرداند. pop روی آرایهٔ خالی هم عضو تازهای تولید نمیکند.
این را به خاطر بسپارید
محل تغییر و نوع خروجی را با هم بدانید؛ افزودن طول میدهد و برداشتن عضو حذفشده را میدهد.