كيفية إيقاف تنفيذ Array.forEach() في JavaScript، مثل break في الحلقة العادية؟
```html
لماذا لا يدعم forEach الأمر break؟
الطريقة Array.forEach() في JavaScript هي دالة استرجاع (callback) تُستدعى لكل عنصر في المصفوفة. على عكس الحلقة العادية for، فإن forEach غير مصمم للتوقف المبكر، لأنه ينفذ دائمًا دالة الاسترجاع لجميع العناصر. استخدام break داخل دالة الاسترجاع يؤدي إلى خطأ نحوي، لأن break يمكن استخدامه فقط داخل الحلقات (for، while، do...while، switch).
كيف يمكن إيقاف التنفيذ بشكل صحيح؟
بدلاً من forEach، استخدم الطرق التي تدعم الإنهاء المبكر:
for...ofمعbreak— الطريقة الأبسط والأكثر قابلية للقراءة:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (const num of numbers) {
console.log('Проверяю число:', num);
if (num === 5) {
console.log('Нашли 5! Хватит.');
break;
}
}
Array.some()— يعيدtrueإذا كان عنصر واحد على الأقل يحقق الشرط، ويتوقف عن التكرار:
numbers.some(function(num) {
console.log('Проверяю число:', num);
if (num === 5) {
console.log('Нашли 5! Хватит.');
return true; // يوقف التنفيذ
}
return false;
});
Array.every()— يعيدfalseللإيقاف:
numbers.every(function(num) {
console.log('Проверяю число:', num);
if (num === 5) {
console.log('Нашли 5! Хватит.');
return false; // يوقف التنفيذ
}
return true;
});
Array.find()— يعيد أول عنصر يحقق الشرط، ويتوقف عن التكرار (إذا كنت بحاجة فقط إلى إيجاد القيمة):
const found = numbers.find(function(num) {
console.log('Проверяю число:', num);
return num === 5;
});
console.log('Найдено:', found);
اختر الطريقة المناسبة حسب المهمة. لإيقاف التكرار ببساطة مع تأثيرات جانبية، الأفضل استخدام for...of مع break.