جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

ارسال مجدد کد یکبار مصرف (00:90)
  • 02177010771
  • info@chabokacademy.com
  • اخبار و مقالات
  • علاقمندی ها
آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
شروع کنید
0

وبلاگ

آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی > اخبار و مقالات > برنامه نویسی > تفاوت for…in و for…of در جاوااسکریپت: پیمایش داده‌ها در جاوااسکریپت

تفاوت for…in و for…of در جاوااسکریپت: پیمایش داده‌ها در جاوااسکریپت

فروردین 11, 1404
ارسال شده توسط ادمین آکادمی
برنامه نویسی
حلقه های تکرار در جاوا اسکریپت

فهرست مطالب این نوشته

Toggle
  • حلقه for در جاوا اسکریپت: مقدمه‌ای بر تکرار داده‌ها
  • For in در جاوا اسکریپت: پیمایش کلیدها
    • مثالی از حلقه ی for در جاوا برای پیمایش یک شی:
  • for…in روی آرایه‌ها: مراقب باشید!
  • for of در جاوا اسکریپت: پیمایش مقادیر
    • مثالی از for…of:
  • فرق for و foreach: کدام بهتر است؟
  • چه زمانی از for…in استفاده کنیم؟
  • چه زمانی از for…of استفاده کنیم؟
تعداد بازدید: 79
5/5 امتیاز

حلقه for در جاوا اسکریپت برای پیمایش داده‌ها استفاده می‌شود. (یعنی به ما کمک می‌کند تا داده‌ها را یکی یکی مرور کنیم.) زمانی هم که صحبت از پیمایش آرایه‌ها، اشیا یا سایر ساختارهای داده‌ای می‌شود، دو حلقه پرکاربرد وجود دارند: for…in و for…of. اگرچه این دو حلقه ظاهراً مشابه به نظر می‌رسند، اما تفاوت‌های زیادی دارند. در این مطلب تفاوت for in و for of از حلقه های تکرار در جاوا اسکریپت را به‌طور کامل بررسی خواهیم کرد.

chabokacademy
دوره‌های آموزشی آکادمی چابک
با تخفیف‌های ویژه آکادمی چابک، یادگیری را شروع کنید!
مشاهده دوره‌ها

حلقه for در جاوا اسکریپت: مقدمه‌ای بر تکرار داده‌ها

برنامه‌نویسان از انواع حلقه ها در جاوا اسکریپت برای پیمایش مجموعه داده‌ها استفاده می‌کنند. انواع حلقه for:

  • for کلاسیک
  • while و do…while
  • forEach (ویژه آرایه‌ها)
  • for…in
  • for…of

برای این مطلب تمرکز ما روی for…in و for…of خواهد بود که هر دو برای حلقه‌های تکرار در جاوا اسکریپت به کار می‌روند. اما آیا می‌توان از هر دوی آن‌ها به‌جای یکدیگر استفاده کرد؟ بیایید بررسی کنیم.

For in در جاوا اسکریپت: پیمایش کلیدها

برای بررسی تفاوت for in و for of، بهتر است درک کنیم که for in چیکار می‌کند.

for…in برای پیمایش کلیدهای یک شی است و برای اشیای معمولی (Object) به کار می‌رود. این حلقه شامل کلیدهای قابل شمارش (enumerable properties) می‌شود. این موضوع حتی اگر آن‌ها از پروتوتایپ (Prototype) به ارث رسیده باشند نیز صدق می‌کند. بیاید با یک مثال این مفهوم را برای‌تان ساده‌تر کنیم.

تفاوت for in و for of

مثالی از حلقه ی for در جاوا برای پیمایش یک شی:

let person = { name: “Ali”, age: 25, city: “Tehran” };

for (let key in person) {

console.log(key); // “name”, “age”, “city”

console.log(person[key]); // “Ali”, 25, “Tehran”

}

در نتیجه مثال بالا، for…in تمام کلیدهای شیء را دریافت کرده و مقادیر مربوطه را نمایش می‌دهد. در موارد پیچیده‌تر، توسعه‌دهندگان از حلقه های تو در تو در جاوا اسکریپت بهره می‌برند.

for…in روی آرایه‌ها: مراقب باشید!

اگر از for…in روی آرایه‌ها استفاده کنید، مقدار بازگشتی ایندکس‌های آرایه (به‌صورت رشته) خواهد بود. همچنین اگر ویژگی‌ای اضافه کرده باشید، آن نیز در خروجی نشان داده می‌شود.

تفاوت Session و Cookie
بخوانید

let arr = [10, 20, 30];

arr.foo = “bar”; // افزودن یک ویژگی به آرایه

for (let index in arr) {

console.log(index); // “0”, “1”, “2”, “foo”

console.log(arr[index]); // 10, 20, 30, “bar”

}

اما مشکل این روش چیست؟ علاوه بر ایندکس‌های عددی، ویژگی‌های اضافه‌شده مانند “foo” هم نمایش داده می‌شوند، که در اغلب موارد رفتار ناخواسته‌ای است. به همین دلیل for…in برای پیمایش آرایه‌ها توصیه نمی‌شود.

for of در جاوا اسکریپت: پیمایش مقادیر

حلقه for…of برای ساختارهای تکرارپذیر (iterable objects) مثل آرایه‌ها، رشته‌ها، Map، Set و NodeList طراحی شده است. این حلقه برخلاف for…in، به‌جای کلیدها، مقادیر عناصر را پیمایش می‌کند.

با یک مثال ساده از پیمایش آرایه با for…of می‌توانید این دستور را بهتر درک کنید.

مثالی از for…of:

let numbers = [10, 20, 30];

for (let value of numbers) {

console.log(value); // 10, 20, 30

}

  • نکته: این روش بهترین روش برای پیمایش داده‌ها در آرایه‌ها است.

معرفی تفاوت for in و for of

فرق for و foreach: کدام بهتر است؟

درست است که forEach و for…of هر دو برای پیمایش آرایه‌ها استفاده می‌شوند، اما تفاوت‌هایی دارند. تفاوت های forEach و for…of  عبارتند از:

ویژگی forEach for…of
خوانایی کد ساده و کاربردی ساده و خوانا
امکان break ندارد دارد
امکان continue ندارد دارد
سرعت سریع سریع

 

چه زمانی از for…in استفاده کنیم؟

for…in را در مواقعی به کار بگیرید که قصد پیمایش خصوصیات یک شیء را دارید. یا وقتی می‌خواهید بررسی کنید که یک شیء چه کلیدهایی دارد. علاوه بر این دو مورد، زمانی که در حال کار با یک شیء پویا هستید هم می‌توانید از for…in استفاده کنید.

  • نکته مهم: هنگام استفاده از for…in برای اشیا، حتماً بررسی کنید که مقدار از پروتوتایپ نیامده باشد

چه زمانی از for…of استفاده کنیم؟

با بررسی تفاوت for in و for of به راحتی می‌توان متوجه شد، زمانی که قصد پیمایش مقادیر یک آرایه را دارید از for…of استفاده کنید. یا وقتی می‌خواهید یک رشته را کاراکتر به کاراکتر پردازش کنید، استفاده از for…of را پیشنهاد می‌کنیم.

یادگیری عمیق تفاوت for in و for of با آکادمی چابک!

درک تفاوت for in و for of به شما کمک می‌کند که در شرایط مختلف، انتخاب درستی داشته باشید.

حلقه for…in برای پیمایش کلیدهای یک شیء طراحی شده و می‌تواند هم خصوصیات خود شیء و هم ویژگی‌های به ارث برده از پروتوتایپ را نمایش دهد. اما استفاده از آن برای آرایه‌ها توصیه نمی‌شود!

در مقابل for…of مخصوص پیمایش مقادیر در ساختارهای تکرارپذیر مثل آرایه‌ها، رشته‌ها، Map، Set و … است. این حلقه برخلاف for…in، مستقیماً مقادیر را بازمی‌گرداند و خصوصیات اضافی یا ارثی را در خروجی نمایش نمی‌دهد.

کاربرد PYTHONPATH در پایتون چیست؟
بخوانید

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

منبع:

www.geeksforgeeks.org

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

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • آموزش گرافیک کامپیوتری
  • امنیت و شبکه
  • برنامه نویسی
  • پایگاه داده
  • سیستم عامل
  • طراحی وب
  • کسب و کار
  • هوش مصنوعی
برچسب‌ها
MBA آموزش و کاربرد هوش مصنوعی اهداف شغلی بازاریابی محصول کسب و کار اینترنتی
logoacademy
آکادمی چابک با برگزاری دوره‌های جامع و تخصصی در حوزه‌ی نرم‌افزار، تحلیل کسب‌وکار و همچنین مشاوره‌های تخصصی در این حوزه‌ها سعی بر آن دارد تا علاقمندان پس از گذراندن دوره‌های مربوطه بتوانند از دانش و مهارت‌ خود بهترین استفاده را کرده و وارد بازار کار شوند.
 

ارتباط با ما

  • ۰۲۱۷۷۰۱۰۷۷۱
  • info@chabokacademy.com
  • حکیمیه، بلوار بابائیان، ۱۵ متری امام حسین، بن بست شفاعت، پلاک ۱۵، طبقه ۷

دسترسی سریع

  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما
  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما

نماد‌ها و خبرنامه

۱۴۰۲© کلیه حقوق سایت نزد آکادمی چابک محفوظ است.

  • Afghanistan (+93)
  • Albania (+355)
  • Algeria (+213)
  • American Samoa (+1)
  • Andorra (+376)
  • Angola (+244)
  • Anguilla (+1)
  • Antigua (+1)
  • Argentina (+54)
  • Armenia (+374)
  • Aruba (+297)
  • Australia (+61)
  • Austria (+43)
  • Azerbaijan (+994)
  • Bahrain (+973)
  • Bangladesh (+880)
  • Barbados (+1)
  • Belarus (+375)
  • Belgium (+32)
  • Belize (+501)
  • Benin (+229)
  • Bermuda (+1)
  • Bhutan (+975)
  • Bolivia (+591)
  • Bonaire, Sint Eustatius and Saba (+599)
  • Bosnia and Herzegovina (+387)
  • Botswana (+267)
  • Brazil (+55)
  • British Indian Ocean Territory (+246)
  • British Virgin Islands (+1)
  • Brunei (+673)
  • Bulgaria (+359)
  • Burkina Faso (+226)
  • Burundi (+257)
  • Cambodia (+855)
  • Cameroon (+237)
  • Canada (+1)
  • Cape Verde (+238)
  • Cayman Islands (+1)
  • Central African Republic (+236)
  • Chad (+235)
  • Chile (+56)
  • China (+86)
  • Colombia (+57)
  • Comoros (+269)
  • Cook Islands (+682)
  • Côte d'Ivoire (+225)
  • Costa Rica (+506)
  • Croatia (+385)
  • Cuba (+53)
  • Curaçao (+599)
  • Cyprus (+357)
  • Czech Republic (+420)
  • Democratic Republic of the Congo (+243)
  • Denmark (+45)
  • Djibouti (+253)
  • Dominica (+1)
  • Dominican Republic (+1)
  • Ecuador (+593)
  • Egypt (+20)
  • El Salvador (+503)
  • Equatorial Guinea (+240)
  • Eritrea (+291)
  • Estonia (+372)
  • Ethiopia (+251)
  • Falkland Islands (+500)
  • Faroe Islands (+298)
  • Federated States of Micronesia (+691)
  • Fiji (+679)
  • Finland (+358)
  • France (+33)
  • French Guiana (+594)
  • French Polynesia (+689)
  • Gabon (+241)
  • Georgia (+995)
  • Germany (+49)
  • Ghana (+233)
  • Gibraltar (+350)
  • Greece (+30)
  • Greenland (+299)
  • Grenada (+1)
  • Guadeloupe (+590)
  • Guam (+1)
  • Guatemala (+502)
  • Guernsey (+44)
  • Guinea (+224)
  • Guinea-Bissau (+245)
  • Guyana (+592)
  • Haiti (+509)
  • Honduras (+504)
  • Hong Kong (+852)
  • Hungary (+36)
  • Iceland (+354)
  • India (+91)
  • Indonesia (+62)
  • Iran (+98)
  • Iraq (+964)
  • Ireland (+353)
  • Isle Of Man (+44)
  • Israel (+972)
  • Italy (+39)
  • Jamaica (+1)
  • Japan (+81)
  • Jersey (+44)
  • Jordan (+962)
  • Kazakhstan (+7)
  • Kenya (+254)
  • Kiribati (+686)
  • Kuwait (+965)
  • Kyrgyzstan (+996)
  • Laos (+856)
  • Latvia (+371)
  • Lebanon (+961)
  • Lesotho (+266)
  • Liberia (+231)
  • Libya (+218)
  • Liechtenstein (+423)
  • Lithuania (+370)
  • Luxembourg (+352)
  • Macau (+853)
  • Macedonia (+389)
  • Madagascar (+261)
  • Malawi (+265)
  • Malaysia (+60)
  • Maldives (+960)
  • Mali (+223)
  • Malta (+356)
  • Marshall Islands (+692)
  • Martinique (+596)
  • Mauritania (+222)
  • Mauritius (+230)
  • Mayotte (+262)
  • Mexico (+52)
  • Moldova (+373)
  • Monaco (+377)
  • Mongolia (+976)
  • Montenegro (+382)
  • Montserrat (+1)
  • Morocco (+212)
  • Mozambique (+258)
  • Myanmar (+95)
  • Namibia (+264)
  • Nauru (+674)
  • Nepal (+977)
  • Netherlands (+31)
  • New Caledonia (+687)
  • New Zealand (+64)
  • Nicaragua (+505)
  • Niger (+227)
  • Nigeria (+234)
  • Niue (+683)
  • Norfolk Island (+672)
  • North Korea (+850)
  • Northern Mariana Islands (+1)
  • Norway (+47)
  • Oman (+968)
  • Pakistan (+92)
  • Palau (+680)
  • Palestine (+970)
  • Panama (+507)
  • Papua New Guinea (+675)
  • Paraguay (+595)
  • Peru (+51)
  • Philippines (+63)
  • Poland (+48)
  • Portugal (+351)
  • Puerto Rico (+1)
  • Qatar (+974)
  • Republic of the Congo (+242)
  • Romania (+40)
  • Reunion (+262)
  • Russia (+7)
  • Rwanda (+250)
  • Saint Helena (+290)
  • Saint Kitts and Nevis (+1)
  • Saint Pierre and Miquelon (+508)
  • Saint Vincent and the Grenadines (+1)
  • Samoa (+685)
  • San Marino (+378)
  • Sao Tome and Principe (+239)
  • Saudi Arabia (+966)
  • Senegal (+221)
  • Serbia (+381)
  • Seychelles (+248)
  • Sierra Leone (+232)
  • Singapore (+65)
  • Sint Maarten (+1)
  • Slovakia (+421)
  • Slovenia (+386)
  • Solomon Islands (+677)
  • Somalia (+252)
  • South Africa (+27)
  • South Korea (+82)
  • South Sudan (+211)
  • Spain (+34)
  • Sri Lanka (+94)
  • St. Lucia (+1)
  • Sudan (+249)
  • Suriname (+597)
  • Swaziland (+268)
  • Sweden (+46)
  • Switzerland (+41)
  • Syria (+963)
  • Taiwan (+886)
  • Tajikistan (+992)
  • Tanzania (+255)
  • Thailand (+66)
  • The Bahamas (+1)
  • The Gambia (+220)
  • Timor-Leste (+670)
  • Togo (+228)
  • Tokelau (+690)
  • Tonga (+676)
  • Trinidad and Tobago (+1)
  • Tunisia (+216)
  • Turkey (+90)
  • Turkmenistan (+993)
  • Turks and Caicos Islands (+1)
  • Tuvalu (+688)
  • U.S. Virgin Islands (+1)
  • Uganda (+256)
  • Ukraine (+380)
  • United Arab Emirates (+971)
  • United Kingdom (+44)
  • United States (+1)
  • Uruguay (+598)
  • Uzbekistan (+998)
  • Vanuatu (+678)
  • Venezuela (+58)
  • Vietnam (+84)
  • Wallis and Futuna (+681)
  • Western Sahara (+212)
  • Yemen (+967)
  • Zambia (+260)
  • Zimbabwe (+263)
ورود
با شماره موبایل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
ثبت نام
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط