أبرز المفاهيم:
يعد التكرار مفهومًا أساسيًا في البرمجة، حيث يسمح بتنفيذ مجموعة من التعليمات البرمجية عدة مرات. في جافا سكريبت، for...of و for...in هما حلقتان شائعتا الاستخدام، لكنهما تخدمان أغراضًا مختلفة. يمكن أن يساعدك فهم الاختلافات في كتابة تعليمات برمجية أكثر كفاءة وفعالية.
يتم استخدام حلقة for...of للتكرار على الكائنات القابلة للتكرار، مثل المصفوفات والسلاسل والخرائط والمجموعات. فهو يوفر طريقة مباشرة للوصول إلى كل قيمة في التسلسل دون الحاجة إلى القلق بشأن الفهرس.
على سبيل المثال)
let teams = ['Red Sox', 'Dodgers', 'Padres']; for (let team of teams) { console.log(team); } // Output: // Read Sox // Dodgers // Padres
في هذا المثال، for... of يصل مباشرة إلى كل عنصر (فريق) في مصفوفة الفرق ويسجله في وحدة التحكم. تعتبر هذه الحلقات مثالية عندما تحتاج فقط إلى القيم وليس المؤشرات.
من ناحية أخرى، يتم استخدام حلقة for...in للتكرار على خصائص (مفاتيح) الكائن. غالبًا ما يتم استخدامه مع الكائنات، ولكن يمكن استخدامه أيضًا مع المصفوفات للوصول إلى الفهارس.
على سبيل المثال)
let Mariners = {place: 'Seattle', league: 'American', color: 'navy blue'}; for (let key in Mariners) { console.log(`${key}: ${Mariners[key]}`); } // Output: // place: Seattle // league: American // color: navy blue
في هذا المثال، for...in يتكرر عبر مفاتيح كائن Mariners، مما يسمح بالوصول إلى كل من المفتاح والقيمة المقابلة. من المهم ملاحظة أنه يجب استخدام for...in بحذر مع المصفوفات، حيث أنها تتكرر على جميع الخصائص القابلة للإحصاء، وليس فقط على المؤشرات الرقمية.
توفر جافا سكريبت مجموعة متنوعة من هياكل البيانات، ولكل منها نقاط القوة والضعف. لقد استكشفت الاختلافات بين بعض أكثرها استخدامًا:
على سبيل المثال)
`
let mySet = new Set([1, 2, 3, 3, 4]);
دع myArray = [1, 2, 3, 3, 4];
console.log(mySet) // الإخراج: المجموعة { 1, 2, 3, 4}
console.log(myArray) // الإخراج: [1, 2, 3, 3, 4]
`
في هذا المثال، يقوم Set() تلقائيًا بإزالة التكرارات 3، بينما يحتفظ بها المصفوفة. يكون Set() مفيدًا عندما تحتاج إلى مجموعة من العناصر الفريدة.
أنواع المفاتيح:
طلب:
مقاس:
على سبيل المثال)
`
دع myMap = خريطة جديدة ()؛
myMap.set('name', 'John');
myMap.set(42, 'الإجابة');
myMap.set({}, 'كائن فارغ');
دع myObject = {
الاسم: "جون"،
42: "الجواب"،
{}: 'كائن فارغ'
};
console.log(myMap.size); // الإخراج: 3
console.log(Object.keys(myObject).length); // الإخراج: 2 (بسبب تحويل السلسلة الرئيسية)
`
في هذا المثال، يسمح Map() باستخدام مجموعة متنوعة من أنواع المفاتيح، بينما يتم تحويل مفاتيح الكائنات إلى سلاسل. بالإضافة إلى ذلك، يوفر Map() حجم الخريطة بسهولة، بينما بالنسبة للكائنات، تحتاج إلى حساب المفاتيح يدويًا.
على سبيل المثال)
`
Let mySet = new Set([1, 2 ,3]);
Let myMap = new Map([['key1', 'value1'], ['key2', 'value2']]);
console.log(mySet.has(2)); // الإخراج: صحيح
console.log(myMap.get('key1')); // الإخراج: 'القيمة'1
`
في هذا المثال، يتم استخدام Set() للتحقق من وجود قيمة، بينما يتم استخدام Map() لاسترداد قيمة مرتبطة بمفتاح.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3