JS Object Iterables الكائنات القابلة للتكرار

JavaScript - الكائنات القابلة للتكرار (Object Iterables)

🔸 الكائنات القابلة للتكرار (Iterables) هي كائنات يمكن استخدامها داخل حلقات for...of، مثل: Array، String، Map، Set. لكن الكائن العادي {} ليس قابلًا للتكرار بشكل مباشر.

---

🔹 أمثلة على كائنات قابلة للتكرار


// Array
const colors = ["red", "green", "blue"];
for (let color of colors) {
  console.log(color);
}

// String
const name = "Mahmoud";
for (let char of name) {
  console.log(char);
}
---

🔹 استخدام for...of مع كائن عادي (لا يعمل مباشرة)


const person = {
  name: "Noor",
  age: 9
};

// ❌ هذا سيؤدي إلى خطأ
// for (let item of person) {
//   console.log(item);
// }

📌 الكائن العادي ليس Iterable، لذلك لا يعمل معه for...of إلا إذا استخدمنا تقنيات تحويل.

---

🔹 تحويل الكائن إلى Array قابلة للتكرار


const person = {
  name: "Mahmoud",
  age: 41
};

for (let [key, value] of Object.entries(person)) {
  console.log(key + ": " + value);
}

📌 Object.entries() تُحوّل الكائن إلى مصفوفة تحتوي على الأزواج [المفتاح، القيمة].

---

🔹 كائن مخصص قابل للتكرار (باستخدام Symbol.iterator)


const myIterable = {
  *[Symbol.iterator]() {
    yield "مرحبا";
    yield "بالعالم";
  }
};

for (let word of myIterable) {
  console.log(word);
}

📌 هذا مثال على إنشاء كائن مخصص قابل للتكرار باستخدام Generator.

---

⚠️ ملاحظات مهمة

  • الكائنات القابلة للتكرار تُستخدم بكثرة في الحلقات الحديثة مثل for...of.
  • يمكنك جعل أي كائن قابل للتكرار عن طريق إضافة [Symbol.iterator].
  • الفرق بين for...in و for...of: الأولى تتعامل مع المفاتيح، والثانية مع القيم.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework