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
: الأولى تتعامل مع المفاتيح، والثانية مع القيم.
تعليقات
إرسال تعليق