البرمجة

استكشاف تقنية TypeScript: الحلقات for…of و for…in في تفاعل

بالطبع، دعونا نقوم باستكشاف هذا الموضوع بمزيد من التفصيل. في البداية، يُشير الرابط الذي قدمته إلى مستندات TypeScript الخاصة بفحص العناصر في مصفوفة باستخدام حلقة foreach. يمكننا أن نلقي نظرة عن كثب على الرمز المقدم لفهم كيف يعمل هذا النمط الجديد لفحص العناصر في المصفوفة.

في المثال الذي قدمته، تم استخدام حلقة foreach للتحقق من عناصر مصفوفة someArray، حيث تم طباعة قيم هذه العناصر. ومن الواضح أن هذا يوفر وسيلة سهلة وبديهية للوصول إلى القيم. ومع ذلك، يبدو أن هناك حاجة إلى الوصول أيضًا إلى الفهرس أو المفتاح الخاص بكل عنصر.

للأسف، لا يدعم TypeScript هذا النوع من اللوب الذي يجمع بين القيمة والمفتاح مباشرة في بنية اللوب نفسها. ومع ذلك، يمكننا تحقيق هذا بشكل بديل باستخدام الفهرس في الحلقة:

typescript
var someArray = [9, 2, 5]; for (var key in someArray) { var item = someArray[key]; console.log(key, item); // 0 9, 1 2, 2 5 }

هنا، نقوم باستخدام for-in loop للحصول على المفاتيح (فهارس)، ثم نستخدم هذه المفاتيح للوصول إلى القيم المتعلقة في المصفوفة. يظهر ذلك بوضوح في الناتج المتوقع حيث يتم طباعة كل فهرس (key) إلى جانب قيمته المقابلة.

بهذه الطريقة، نحقق الهدف المطلوب بالرغم من عدم دعم لوب foreach مع مفاتيح مباشرة. الأمر يعتمد على استخدام for-in loop للوصول إلى المفاتيح ثم استخدام تلك المفاتيح للوصول إلى القيم المتعلقة في المصفوفة.

المزيد من المعلومات

بالطبع، دعنا نقوم بتوسيع فهمنا لهذا الموضوع. يجب علينا أن نعرف أن لغة TypeScript تأتي كنوع من أنواع JavaScript المحسنة بالتعليمات البرمجية القوية للكائنات والأنواع. وفيما يتعلق بالحلقات، فإن حلقة for...of في TypeScript توفر وسيلة مرنة وسهلة للوصول إلى قيم عناصر المصفوفة دون الحاجة إلى استخدام المفاتيح.

مع ذلك، لحظتَ أن هناك حاجة إلى الوصول إلى المفاتيح في الحلقة أيضًا. في JavaScript و, بالتالي TypeScript، حلقة for...in تستخدم لعرض جميع الخصائص القابلة للتكرار لكائن ما، بما في ذلك المصفوفات. تستخدم هذه الحلقة للوصول إلى المفاتيح (الفهارس) بدلاً من القيم نفسها.

لنقم بفحص مثال إضافي:

typescript
var someArray = [9, 2, 5]; for (var key in someArray) { if (someArray.hasOwnProperty(key)) { var item = someArray[key]; console.log(key, item); // 0 9, 1 2, 2 5 } }

هنا، نستخدم hasOwnProperty للتحقق من أن المفتاح المسترجع فعليًا ملك للكائن وليس موروثًا من سلسلة النماذج الأساسية. هذا يحمينا من أي خصائص متعلقة بالتمديدات أو التعديلات على كائن Object الأساسي.

في الختام، يظهر هذا الأسلوب استخدام for...in للوصول إلى المفاتيح في المصفوفة، ثم استخدام هذه المفاتيح للوصول إلى القيم المتعلقة. يعتبر هذا حلاً بديلًا للحصول على مؤثرات مماثلة للحلقة المرغوبة for...of مع مفاتيح المصفوفة.

زر الذهاب إلى الأعلى