همانطور که گفته شد زمانی که بخواهیم خصوصیت های یک آبجکت را پیمایش کنیم از دستور for/in استفاده میکنیم. درون پرانتز این نوع حلقه آبجکت و یک متغیر برای دریافت خصوصیات آبجکت استفاده میشود.
نحوه نوشتن:
1 2 3 |
for (key in object) { // code block to be executed } |
مثال:
1 2 3 4 5 6 |
const person = {fname:"amir", lname:"javanmir", age:30}; let text = ""; for (let x in person) { text += person[x]+" "; } //amir javanmir |
توضیح مثال:
از این حلقه برای پیمایش آبجکت person استفاده شده است. این آبجکت دو خصوصیت به نام fname و lname دارد.
در هر بار پیمایش کلید یا خصوصیت برگشت داده میشود
برای دسترسی به مقدار آیتم های آبجکت از person[x] استفاده شده است.
استفاده از for/in درون آرایه ها
از آنجایی که آرایه ها خود نوعی آبجکت هستند شما میتوانید از حلقه for/in استفاده کنید.
همانطور که میدانید آیتم های آرایه دارای کلید نیستند و در اینجا اندیس آرایه که عدد است برگشت داده
نحوه نوشتن:
1 2 3 |
for (variable in array) { // code block to be executed } |
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 |
const numbers = [45, 4, 9, 16, 25]; let txt = ""; for (let x in numbers) { txt += x +"<br>; } /* 0 1 2 3 4 */ |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
const numbers = [45, 4, 9, 16, 25]; let txt = ""; for (let x in numbers) { txt += numbers[x] +"<br> ; } /* 45 4 9 16 25 */ |
نکته: در صورتی که ترتیب چینش مقادیر آرایه برای شما مهم است از حلقه for/in استفاده نکنید. برای اینکار یا از for/of یا Array.foreach استفاده کنید.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const numbers = [45, 4, 9, 16, 25]; let txt = ""; numbers.forEach(myFunction); function myFunction(value, index, array) { txt += value + "<br>"; } /* 45 4 9 16 25 */ |