طريقة البحث في الأنواع في JavaScript

  • الصفحة السابقة JS Break
  • الصفحة التالية JS Set

العنصر القابل للتدوير هو العنصر القابل للتدوير (مثل المصفوفة).

يمكن الوصول إلى العنصر القابل للتدوير من خلال رمز بسيط وفعال.

يمكن استخدام العنصر القابل للتدوير for..of دائرة التكرار تقوم بالتنقل.

دائرة تكرار for..of

for..of استخدام جملة لاستعراض عناصر العنصر القابل للتدوير.

النص

للأسفل (متغير من قابل للدوران) {
  // الكود الذي سيتم تنفيذه
}

التنقل

التنقل بسيط جداً لفهمه.

فهذا يعني فقط استعراض سلسلة من العناصر.

إليك بعض الأمثلة البسيطة:

  • استعراض النص
  • استعراض المصفوفة

استعراض النص

يمكن استخدام for..of استعراض عناصر النص:

مثال

const name = "W3Schools";
للأسفل (const x of name) {
  // الكود الذي سيتم تنفيذه
}

جرب بنفسك

استعراض المصفوفة

يمكن استخدام for..of استعراض عناصر مصفوفة:

مثال 1

const letters = ["a","b","c"];
لـ (من نوع letters) {
  // الكود الذي سيتم تنفيذه
}

جرب بنفسك

مثال 2

const numbers = [2,4,6,8];
للأسفل (const x of numbers) {
  // الكود الذي سيتم تنفيذه
}

جرب بنفسك

استعراض مجموعة

يمكن استخدام for..of استعراض عناصر مجموعة Set:

مثال

const letters = new Set(["a","b","c"]);
لـ (من نوع letters) {
  // الكود الذي سيتم تنفيذه
}

جرب بنفسك

التعليق:سنوضح المزيد عن Set و Map في الفصول القادمة.

للجولة التكرارية في Map

يمكن استخدام for..of الجولة التكرارية للاعتبارات في Map:

مثال

const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  
]
لـ (من نوع fruits) {
  // الكود الذي سيتم تنفيذه
}

جرب بنفسك

مولد JavaScript

يحدد معاهدة المولد كيفية إنشاء العناصر من العنصر.سلسلة من القيمالمولد

عندما يتم تنفيذ next() عندما يتم تنفيذعندما يتم تنفيذ طريقة المولد، يصبحالمولد

next() .

  • الطريقة يجب أن تعود دائمًا عنصرًا يحتوي على خصائصين:
  • value (القيمة التالية)
done (صحيح أو خطأ)

value

القيمة التي يرجعها المولد.

إذا كان done صحيحًا، يمكن تجاوزه.

done

إذا كان المولد قد اكتمال، فإنها تكون صحيحة.

إذا كان المولد قد أنشأ قيمة جديدة، فإنها تكون خطأ.

ملاحظة:

بشكل تقني، يجب أن يحقق العنصر القابل للتكرار طريقة Symbol.iterator.

السلاسل، القوائم، TypedArray، Map و Set هي جميعها عناصر قابلة للتكرار لأن原型 لها يحتوي على طريقة Symbol.iterator.

العناصر القابلة للتكرار المخصصة next() في المثال التالي، تم عرض عنصر قابل للتكرار المخصص، الذي لن ينتهي أبدًا، ويتم استدعاؤه في كل مرة

مثال

ستكون جميعها تعود 10, 20, 30, 40، إلخ:
// إنشاء عنصر قابل للتكرار مخصص
  عدد n = 0;
  إرجاع {
    function myNumbers() {
      ن += 10;
      next: function() {
    }
  };
}
return { value: n, done: false };
// إنشاء عنصر قابل للتكرار
const n = myNumbers();
n.next(); // يعود 10
n.next(); // يعود 20

جرب بنفسك

n.next(); // يعود 30

السؤال هو: for..of العناصر القابلة للتكرار المخصصة لا تدعم JavaScript

الجملة for..of الداعمة للتكرار.

العناصر القابلة للتكرار في JavaScript هي التي تحتوي على Symbol.iterator العناصر.

Symbol.iterator هو رمز يعود next() وظيفة.

يمكن استخدام النص التالي لتحسين عملية تكرار العناصر القابلة للتكرار:

لـ (من نوع x من قابل للدوران}) { }

مثال

// أنشئ عنصرًا
myNumbers = {};
// جعله قابلاً للدوران
dالة myNumbers[Symbol.iterator] = function() {
  عدد n = 0;
  تم إكمال = المزيف;
  إرجاع {
    التالي() {
      ن += 10;
      إذا (ن == 100) { تم إكمال = الحقيقة; }
      إرجاع { قيمة: n، تم إكمال: تم إكمال };
    }
  };
};
// الآن يمكنك استخدام for..of
للدوران (عدد من numbers في myNumbers) {
  // أي كود
}

جرب بنفسك

يتم استدعاء دالة Symbol.iterator for..of الاستدعاء التلقائي.

لكن يمكننا أيضًا استدعاءها يدويًا:

مثال

دالة محول = myNumbers[Symbol.iterator]();
بينما (الحقيقة) {
  ثابت result = محول التالي();
  إذا (تم إكمال result) فانقسم;
  // أي كود
}

جرب بنفسك

  • الصفحة السابقة JS Break
  • الصفحة التالية JS Set