در حال بارگذاری...

متدهای آرایه

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

تعداد مجاز است تکان بخورد

این پنج صدا همان آرایه‌ای را که در دست داری عوض می‌کنند، نه رشتهٔ تازه‌ای مثل متدهای متن و نه تابعی که خودت روی آبجکت ذخیره کرده باشی. push و pop و unshift و shift و splice ابزار آمادهٔ خودِ فهرست‌اند.

پنج صدا روی یک کارت

کارت را دمِ دستِ نمونه‌ها بگذار تا هر بار به بالا برنگردی. خیلی وقت‌ها چیزی که از صدا برمی‌گردد خودِ سبد نیست. یا عدد است، یا قلمی که رفته، یا یک آرایهٔ کوچک.

📊 پنج صدای آرایه

صدا کجا کار می‌کند چه برمی‌گردد length
push ته طول تازه به تعداد قلم‌هایی که دادی رشد می‌کند
pop ته قلم حذف‌شده یکی کم می‌شود
unshift سر طول تازه به تعداد قلم‌هایی که دادی رشد می‌کند
shift سر قلم حذف‌شده یکی کم می‌شود
splice اندیسی که خودت انتخاب می‌کنی آرایهٔ کوچکِ حذف‌شده‌ها به اندازهٔ تعداد حذف کم می‌شود

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

چای ته سبد

سبد با نان و شیر و تخم‌مرغ شروع می‌شود. push چای را بعد از تخم‌مرغ می‌گذارد. عددی که همان لحظه می‌شنوی، تعداد خانه‌های الان است.

چای را ته بگذار

javascript
let cart = ["bread", "milk", "eggs"];
let n = cart.push("tea");
console.log(n);
console.log(cart[3]);
console.log(cart.length);

n برابر ۴ است، یعنی طول تازه نه خودِ tea. اندیس ۳ چای را نگه می‌دارد و length هم ۴ است چون فقط یک قلم به ته اضافه شده. دو آرگومان یعنی دو خانه رشد. اینجا یک آرگومان می‌دهیم تا خواندن عدد ساده بماند.

آخرین قلم را بردار

javascript
let cart = ["bread", "milk", "eggs"];
let gone = cart.pop();
console.log(gone);
console.log(cart.length);

آخرین قلم می‌رود

pop تخم‌مرغ را از ته برمی‌دارد و همان رشته را به دستت می‌دهد، و length می‌شود ۲. سبد می‌ماند نان و بعد شیر. این صدا طول تازه را پس نمی‌دهد. اگر سبد خالی باشد undefined می‌آید و نمونه‌های این صفحه از خالی شروع نمی‌کنند.

چای را جلو بگذار

javascript
let cart = ["bread", "milk", "eggs"];
let n = cart.unshift("tea");
console.log(n);
console.log(cart[0]);
console.log(cart[1]);

جلوی صف تازه می‌شود

unshift هم ۴ برمی‌گرداند چون طول تازه است، و اندیس صفر حالا چای است. نان بی‌آنکه بازنویسی شود به اندیس ۱ می‌رود. هر قلم قدیمی یک قدم به سمت ته سبد سر می‌خورد.

قلم جلو را بردار

javascript
let cart = ["bread", "milk", "eggs"];
let gone = cart.shift();
console.log(gone);
console.log(cart[0]);
console.log(cart.length);

سر صف خالی می‌شود

shift نان را برمی‌گرداند، یعنی قلمی که رفته نه یک طول. بعد از آن اندیس صفر شیر است و length برابر ۲. تخم‌مرغ هنوز آخر است. فقط جایش شده اندیس ۱.

خانهٔ وسط را ببُر

javascript
let cart = ["bread", "milk", "eggs"];
let removed = cart.splice(1, 1);
console.log(removed[0]);
console.log(cart.length);
console.log(cart[1]);

خانه‌ای که خودت انتخاب کردی

آرگومان اول اندیس شروع است و دومی می‌گوید چند خانه حذف شود. شیر می‌رود و removed آرایه‌ای یک‌خانه است، پس removed[0] شیر است نه اینکه خودِ صدا رشتهٔ شیر باشد. length می‌شود ۲ و اندیس ۱ تخم‌مرغ است، چون نان سر جا مانده و تخم‌مرغ جای خالی را بسته. اگر تعداد حذف را ۰ بگذاری بدون حذف درج می‌شود. آن شکل را فعلاً کنار بگذار.

صفحه طول تازه را چاپ می‌کند

چای را با push اضافه کن. بعد length را در پاراگراف بنویس. خط باید تعداد باشد نه فهرست خرید.

نمونهٔ صفحه — طول بعد از push

html
<!DOCTYPE html>
<html>
<head>
<title>array-methods — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let cart = ["bread", "milk", "eggs"];
cart.push("tea");
let box = document.getElementById("line");
box.textContent = cart.length;
</script>
</body>
</html>

پاراگراف عدد ۴ را نشان می‌دهد. رشتهٔ اضافه‌شده را از چای به مربا عوض کن و صفحه را تازه کن؛ خط همان ۴ می‌ماند چون باز هم یک قلم اضافه شده. کلمه عوض شده و تعداد نه. نان و شیر و تخم‌مرغ جلوی هر چه push کرده‌ای می‌مانند.

روی سبد تازه کار کن

  1. چای را با push ته نان و شیر و تخم‌مرغ بگذار و هم عدد برگشتی را بخوان هم اندیس ۳ را.
  2. یک بار pop کن و هم کلمهٔ حذف‌شده را بخوان هم طول تازه را، بعد با unshift چای را جلو بگذار و اندیس ۰ و ۱ را ببین.
  3. یک بار shift کن و کلمهٔ رفته را با اندیس صفرِ تازه بخوان، بعد splice را روی اندیس ۱ با حذف یک خانه بزن و removed[0] را کنار طول بگذار.
  4. روی صفحه چای را push کن، تازه کن، خط را بخوان، بعد چای را مربا کن و دوباره تازه کن.

جاهایی که نمره کم می‌شود

  • وقتی می‌خواستی خانه اضافه کنی نوشتی cart[1] = "tea"، یا پرانتز push و pop را جا انداختی
  • مقدار برگشتی pop را طول تازه فرض کردی
  • انتظار داشتی splice خودِ رشتهٔ شیر را بدهد نه یک آرایه
  • فکر کردی بعد از unshift اندیس صفر هنوز نان است، یا همین صفحه را با پیمایش همه‌قلم و جست‌وجوی مقدار قاطی کردی

این‌ها بماند

  • این صداها همان آرایه را دستکاری می‌کنند
  • push و unshift طول تازه را برمی‌گردانند و pop و shift قلمِ رفته را
  • splice آرایهٔ کوچکی از حذف‌شده‌ها می‌دهد
  • پاراگراف می‌تواند بعد از push فقط طول را نشان دهد
  • درس بعد پیمایش آرایه است و جستجو در آرایه بعد از آن می‌آید

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود