دوره مجازی جاوااسکریپت (جلسه 6): آرایه ها، اشیاء ، ساختارهای کنترلی و حلقه ها

دسته بندی: جاوا اسکریپت
زمان مطالعه: ۲ دقیقه
۰۲ خرداد ۱۳۹۴

در جلسه امروز به بحث مهم نحوه استفاده از آرایه ها و اشیاء در زبان جاوااسکریپت خواهیم پرداخت و بعد از اون ساختارهای کنترلی و حلقه ها در جاوا اسکریپت رو آموزش میدیم و با همدیگه مثال های استفاده از این ساختار ها رو خواهیم داشت . در انتها هم در مورد آرایه های دو و چند بعدی و نحوه پردازش اونها در حلقه ها صحبت خواهیم کرد .

مطالب مطرح شده در این جلسه عبارتند از :

  •  آشنایی به آرایه ها، ایندکس ها و مقادیر آنان
  • آشنایی به نحوه استفاده، تغیر و اضافه و حذف کردن عناصر آرایه
  • آرایه های دو بعدی و سه بعدی
  • آشنایی با اشیاء، ویژگی ها و متدها
  • نحوه استفاده از متد ها و ویژگی های اشیاء در جاوااسکریپت
  • ساختار های کنترلی و حلقه های مختلف در جاوااسکریپت
  • حلقه while و نحوه استفاده از آن
  • توضیح در مورد ساختار حلقه و لزوم برقراری شرط پایان حلقه
  • حلقه do..while و نحوه استفاده از آن
  • تفاوت حلقه های  while و do..while
  • حلقه for و نحوه استفاده از آن
  • نحوه تبدیل کدهای حلقه while به معادل for آن
  • حلقه for..in و پیمایش آرایه ها و اشیاء با آن
  • آشنایی با دستور break و وظیفه آن
  • آشنایی با دستور continue و کاربرد آن
  • کدنویسی و ذکر مثال هایی از حلقه های مختلف
  • مینی پروژه : چاپ اعضای آرایه ی دو بعدی با ظاهری مناسب
:: توجه

این مطلب یک جلسه از آموزش javascript می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش javascript

نویسنده
بیش از 15 سال هست که برنامه نویسی می کنم و از بین همه زبون هایی که کار کردم جاوا، اسمبلی و php رو دوست دارم. دانشجوی دکترای نرم افزارم و توی دانشگاه روی پردازش بیگ دیتا و پردازش موازی کار کردم و عاشق چالش از هر نوعیش هستم! سون لرن مثل بچه منه که 12 سال براش وقت گذاشتم، اینجا همه تلاش می کنیم از شروع یادگیری تا ورود به بازر کار حوزه برنامه نویسی و IT همراهتون باشیم.

جلسات دوره

نظرات کاربران

ایمان مودی

اینم از کد:

ایمان مودی

سلام استاد. یه تمرین در این جلسه دادید و گفتید که اسکریپتی بنویسیم که اعداد فرد رو در 3 ضرب کنه. من این کد رو نوشتم ولی نمیدونم چرا مشکل داره. لطفا راهنمایی کنید.

مهدیه تقوی

اقای اوند علت گذاشتن اون دو تا علامت مثبت قبل و بعد از چاپ خروجی چیه؟ من متوجه نشدم.

document.write("sum arr["+i+"]
مهدیه تقوی

سلام. یه سوال داشتم. اقای اوند اگر document.write رو قبل از اولین for قرار بدیم اشتباهه؟چه فرقی داره قبلش باشه یا بعدش؟

document.write("<div class=’row’>");
    for (i = 0; i < arr.length; i++) {
        for (j = 0; j < arr[i].length; j++) {
            arr[i][j] *=  10;
            document.write("<span class=’element’>" + arr[i][j] + "</span>")
it,one

سلام استاد اوند عزیز استاد ببخشید یه سوالی ذهنمو در گیر کرده
;if(candition)
}
{
اگه توی ایف اگه سمی کالمن بگذاریم ایا فرقی داره ؟!‌
امید وارم منظورمو خوب رسونده باشم

لقمان آوند

متوجه نشدم دقیق ؟

مجید زارعی هوشیار

سلام …آقای آوند عالی بود…ممنون از توضیحاتتون….فقط من حسرت اینو میخورم چرا دیر با سایت شما آشنا شدم……….وتمرینات رو هم انجام دادم……از استایل هام استفاده کردم 😯 🙂 🙂 🙂 🙂

 var arr = [[11, 12],
  [21, 22, 23, 24],
  [31, 32, 32, 34, 35],
  [44],
  [51, 52, 53]];
 print(""+arr+"");
 var i, j, avg = 0;
 for (i = 0; i &lt; arr.length; i++) {
  document.write(&quot;");
  var result = 0;
  for (j = 0; j &lt; arr[i].length; j++) {
   result += arr[i][j];
   document.write(&quot;<span class='index'>" + arr[i][j] + "</span>");
  }
  avg += result;
  arr[i] = result;
  document.write("<span class='assign'>+ =&gt;</span><span class='element'>" + result + "</span>");
  document.write("");
 }
 document.write("" + arr + "");
 document.write("<span class='assign'>Avrage :</span><span class='element'>" + avg / arr.length + "</span>"); 
saman masoomi

بسیار عالی 😆
ممنون. کی میشه این نکات ریز رو یاد بگیریم. 🙁

saman masoomi

خیلی ممنون.
خروجی نهایی جمع همش رو نشون میده. منظور من اینه که جمع آرایه اول رو بگه : 3 دوم رو بگه : 50. یعنی جدا بگه.
توی حلقه While اومدین گفتین j = 0 که آرایه های بعدی رو از ایندکس 0 شروع کنه ولی توی حلقه for چرا نیاز نیست بگیم ؟ همچنین خودش به صورت خودکار چطور i++ یا j++ رو سر جای مناسب قرار میده ؟
ممنون

لقمان آوند

خوب کدی که بهتون دادم دقیقا همینکارو می کرد. اصلا اجراش کردید ؟
چون تو for خودش در ابتدا این دستورو درون بدنه خودش داره. ولی برای while نیست و باید اول حلقه بزارید.

saman masoomi

بله تست کردم. مثلا آرایه اول جمعش میشه 5 و آرایه دوم میشه 20 . جواب آرایه دوم رو 25 چاپ میکنه .
مهم نیست ممنون.

لقمان آوند

sum رو هم قبل از حلقه داخلی باید 0 بدید مقدارشو که با قبلیا جمع نشه ..

saman masoomi

این رو نوشتم ولی به جای اینکه جمع نهایی رو بده، خروجی اینه : 1346

var arr = [1,2,1,2];
   var sum = 0;
   for (var i = 0; i &lt; arr.length; i++) {
     sum += arr[i];
     document.write(sum);
   }
لقمان آوند

باید بیرون از حلقه چاپ کنید :

var arr = [1,2,1,2];
   var sum = 0;
   for (var i = 0; i &lt; arr.length; i++) {
     sum += arr[i];
   }
document.write(sum);
saman masoomi

خیلی ممنون.
ببخشید 2 تا سوال دیگه داشتم.
برای جمع آرائه های تودرتو همونطور که گفتین داخلی ترین حلقه اعداد رو اضافه کردم ولی این جمع نهایی رو میده. من اگر بخوام جمع هر آرایه رو جداگانه بده چی ؟

var arr = [[1,2],[11,12,13,14],[21,22],[31,32]];
sum=0;
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
}
chap(sum);
}
سوال دیگه هم ایجاد حلقه تودرتو با While هست :

var i = 0;
var j = 0;
while (i < arr.length) {
chap(arr[i]);
while (j < arr[i].length) {

chap(arr[i][j]);
j++;
}
i++;
}

ولی متاسفانه درست عمل نمیکنه.
ممنون.

لقمان آوند

کد زیر برای نمایش جمع جداگانه هر آرایه هست :

 <script>
var arr = [[1,2],[11,12,13,14],[21,22],[31,32]];
sum=0;
for (var i = 0; i < arr.length; i++) {
 for (var j = 0; j < arr[i].length; j++) {
  sum += arr[i][j];
 }
  document.write("sum arr["+i+"] = "+sum + "<br>");
}
document.write("-------------------------<br>");
var arr = [[1,2],[11,12,13,14],[21,22],[31,32]];
sum=0;
var i = 0,j = 0;
while( i < arr.length) {
 j = 0;
 while (j < arr[i].length) {
  sum += arr[i][j];
  j++
 }
  document.write("sum arr["+i+"] = "+sum + "<br>");
  i++;
}
</script> 
saman masoomi

سلام
استاد برای جمع اعداد توی آرایه های تک بعدی و دوبعدی چیکار باید بکنیم ؟

لقمان آوند

فرقی نداره. در داخلی ترین حلقه اعداد رو به sum اضافه کنید. در انتهای کد sum رو چاپ کنید.

زهرا صوفی

سلام استاد می خواستم بدونم که چطوری فرد بودن اعضای آرایه دوبعدی رو بررسی کنیم من کد زیر را می نویسم ولی دقیق نمی دونم دستور print رو کجا قرار بدم تا خروجی رو برگردونه؟کد همه دوستان رو نگاه کردم و فکر میکنم همه اعضای آرایه یک بعدی رو بررسی کردن

 var k =0 , j =0;
 var arr =[[11,12,13],[14,15,16.5],[17,18,19,20]];
 while (k &lt;arr.length){
  while (j &lt;arr[k].length){
   if(arr[k][j]%2 !=0){
    var arry =  arr[k][j] *3;
   }
   document.write(arry);
   j++;
  }
  k++;
 }
لقمان آوند

کدتون ناقصه.
j باید در اول حلقه نخست 0 شه که ارایه های داخلی رو از اول بخونه .
شرط فرد بودنتون هم غلطه و مثلا 16.5 رو هم فرد می بینه!
محل صحیح چاپ هم داخل شرط مذکور هست
اینو استفاده کنید :

var k =0 , j =0;
var arr =[[11,12,13],[14,15,16.5],[17,18,19,20]];
while (k <arr.length){
  j = 0 ;
    while (j < arr[k].length){
     if(arr[k][j]%2 == 1)
     document.write(arr[k][j] + "<br>");
      j++;
   }
   k++;
}

موفق باشید

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

شما هم چنان می توانید سوالات خود را در این قسمت بپرسید اما اولویت پاسخ گویی با دانشجویانی است که بازه پشتیبانی فعال دارند.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل