حلقه for…of در ES6

در این آموزش دستور العمل for…of جاوا اسکریپت که به شما اجازه می دهد تا یک loop تکرار از یک شئ قابل تکرار را ایجاد کنید به شما معرفی می کنیم.

معرفی  for…of loop جاوا اسکریپت

ES6  شکلی جدید از for…of معرفی کرده که یک loop تکراری از یک شئ قابل تکرار مثل آرایه، Map و یک Set یا یک شئ که نقش تکرار کننده را ایفا می کند، ایجاد می کند.

در ادامه توضیح دستور for…of آمده است:

for (variable of iterable) {
   // statements 
}

متغیر

هر ویژگی یک شئ متغیر است.

شئ

یک شئ قابل تکرار مثل یک آرایه، یک Set ، یک Map و غیره.

مثال های for…of loop جاوااسکریپت

بیایید نگاهی به بعضی مثال های استفاده از for…of بی اندازیم.

تکرار یک آرایه

مثال زیر نشان می دهد که چطور از for…of برای تکرار عناصر یک آرایه استفاده کنید:

let scores = [80, 90, 70];
for (let score of scores) {
    score = score + 5;
    console.log(score);
}

اگر متغیر داخل loop را تغییر ندهید، باید از const به جای let مانند نمونه استفاده کنید:

for (const score of scores) {
    console.log(score);
}
// ۸۰
// ۹۰
// ۷۰

تکرار یک رشته

مثال زیر از for…of برای تکرار کاراکترهای یک رشته استفاده کرده است:

let str = 'abc';
for (let c of str) {
    console.log(c);
}
// a
// b
// c

تکرار یک Map

مثال زیر چگونگی استفاده از دستور for…of در یک شئ Map  را توضیح می دهد:

var colors = new Map();
colors.set('red', '#ff0000');
colors.set('green', '#00ff00');
colors.set('blue', '#0000ff');
 
for (let color of colors) {
    console.log(color);
}
 
// ["red", "#ff0000"]
// ["green", "#00ff00"]
//["blue", "#0000ff"]

تکرار یک Set

مثال زیر چگونگی تکرار یک مجموعه با استفاده از for…of را نشان می دهد:

let nums = new Set([1, 2, 3]);
 
for (let num of nums) {
    console.log(num); //
}
// ۱
// ۲
// ۳

for…of در برابر for…in

for…in loop  تمام ویژگی های قابل شمارش یک شئ را تکرار می کند. این تکرار یک ‌مجموعه مثل Array, Map  یا Set نیست.

برخلاف for…in loop ، for…of loop به جای یک شئ، یک مجموعه را تکرار می کند. درواقع، for…of عناصرهر مجموعه که ویژگی [Symbol.iterator]  را داشته باشد تکرار می کند.

مثال زیر تفاوت بین ‌ for…of و for…in را توضیح می دهد:

let numbers = [6, 7, 8];
numbers.foo = "foo";
 
for (let i in numbers) {
    console.log(i);
}
// ۰
// ۱
// ۲
// foo
for (let i of numbers) {
    console.log(i);
}
// ۶
// ۷
// ۸
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 4٫50 out of 5)
Loading...
counter customizable free hit