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

پیمایش آرایه

فهرست songs سه عنوان rain و tide و dusk را نگه داشته و در تمام این صفحه تعدادشان قفل است، چون forEach فقط سر می‌زند و مثل درس قبل اندازه را کم و زیاد نمی‌کند.

اندازه تکان نمی‌خورد

این بار راه رفتن یک صدای متد است و اگر بخواهی اندیس را هم به تو می‌دهد، بر خلاف for...of که فقط مقدار را می‌آورد. هیچ عنوانی به ته نمی‌چسبد و هیچ عنوانی هم از فهرست کم نمی‌شود.

تابعی که می‌سپاری

تابعی به forEach می‌دهی تا برای هر آهنگ یک بار اجرا شود و کارت پایین قرارداد همین صفحه است.

📊 forEach چه به دستت می‌دهد

قطعه کی می‌رسد این نیست
آرگومان اول هر بازدید طول
آرگومان دوم فقط اگر اسمش را بنویسی اجباری
نتیجهٔ خودِ صدا وقتی forEach تمام شود یک آرایهٔ تازه
length بعدش وقتی songs.length را بخوانی عوض‌شده با این بازدید

آهنگ آرگومان اول است و اندیس آرگومان دوم، که نوشتنش اجباری نیست.

ترتیب روی کنسول

هر عنوان را چاپ کن. باید اول rain بیاید، بعد tide، و آخر dusk.

هر عنوان را چاپ کن

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title) {
console.log(title);
});

سه خط می‌آید و از جلوی آرایه به سمت عقب می‌رود. سه رشته هنوز در همان خانه‌ها نشسته‌اند.

اندیس کنار عنوان

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title, i) {
console.log(i);
console.log(title);
});

صفر مال rain است، دو مال dusk، و tide بینشان روی یک نشسته.

خودِ صدا undefined است

javascript
let songs = ["rain", "tide", "dusk"];
let result = songs.forEach(function (title) {
console.log(title);
});
console.log(result);
console.log(songs.length);

صدا را در متغیر بریز و چاپ کن تا undefined را ببینی، که نه عنوان است و نه طول. چاپ length هنوز ۳ است.

return راه را قطع نمی‌کند

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title) {
if (title === "tide") {
return;
}
console.log(title);
});

اگر عنوان tide باشد و همان‌جا return کنی، آن خط چاپ نمی‌شود. راه قطع نمی‌شود و dusk هنوز به کنسول می‌آید.

بازدیدها را خودت بشمار

javascript
let songs = ["rain", "tide", "dusk"];
let seen = 0;
songs.forEach(function (title) {
seen = seen + 1;
});
console.log(seen);
console.log(songs.length);

شمارنده‌ات روی ۳ می‌ایستد و length هم ۳ است، ولی این جمع را خودت نگه داشته‌ای نه اینکه صدا برایت برگردانده باشد.

عنوان‌ها داخل پاراگراف

بین عنوان‌ها یک فاصله بگذار و همان رشته را در پاراگراف بنویس. طول را داخل خط نیاور.

دموی صفحه — عنوان‌ها در یک خط

html
<!DOCTYPE html>
<html>
<head>
<title>array-iteration — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let songs = ["rain", "tide", "dusk"];
let line = "";
songs.forEach(function (title) {
if (line !== "") {
line = line + " ";
}
line = line + title;
});
let box = document.getElementById("line");
box.textContent = line;
</script>
</body>
</html>

خط سه عنوان را با فاصله نشان می‌دهد و اگر tide را به fog عوض کنی و صفحه را تازه کنی کلمهٔ وسط عوض می‌شود. بازدید همچنان سه عنوان را می‌پوشاند.

خودت قدم بزن

  1. سه عنوان را چاپ کن. ببین rain اول است
  2. اندیس‌ها را چاپ کن و ببین rain روی ۰ است
  3. نتیجهٔ صدا را ذخیره کن و undefined را ببین در حالی که طول ۳ می‌ماند
  4. روی tide همان لحظه return کن و ببین dusk هنوز چاپ می‌شود
  5. هر بازدید یکی به seen اضافه کن و ببین ۳ شده
  6. خط صفحه را بخوان، tide را fog کن و تازه کن

خواندن‌های غلط

  • انتظار نداشته باش صدا آخرین عنوان را پس بدهد. برگشتی آهنگ نیست
  • انتظار نداشته باش صدا طول را پس بدهد
  • داخل تابع break ننویس چون خطای نحوی است
  • گمان نکن return بعد از tide جلوی dusk را می‌گیرد
  • پارامتر دوم را عنوان حساب نکن
  • در این صفحه سراغ جست‌وجوی مقدار نرو

با خودت ببر

  • forEach از جلو تا عقب به هر قلم سر می‌زند و پارامتر اول خودِ قلم است
  • پارامتر دوم اندیس است
  • نتیجهٔ خودِ صدا undefined است
  • return داخل تابع فقط همان بازدید را رد می‌کند
  • صفحهٔ بعد بر اساس مقدار جست‌وجو می‌کند

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

آماده شروع

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

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

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

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

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