في لغة دارت (Dart)، توجد عبارة قوية تُسمى where
تمكّنك من تصفية العناصر في القوائم List والمجموعات Set والـ Map وفقًا لشروط محددة. تُرجع هذه العبارة مجموعة جديدة تحتوي فقط على العناصر التي تستوفي الشرط المحدد. سيقوم هذا المقال بإرشادك لتتعلم استخدام طريقة where
في لغة دارت مع أمثلة عملية.
مثال 1: تصفية الأعداد الفردية من قائمة List
لنبدأ بمثال بسيط يتعلق بتصفية الأعداد الفردية من قائمة List باستخدام عبارة where
.
void main() { List<int> numbers = [2, 4, 6, 8, 10, 11, 12, 13, 14]; List<int> oddNumbers = numbers.where((number) => number.isOdd).toList(); print(oddNumbers); }
نتيجة الكود:
[11, 13]
في المثال أعلاه، لدينا قائمة من الأرقام. نستخدم عبارة where
لتصفية الأعداد الفردية بتوفير الشرط (number) => number.isOdd
. خاصية isOdd
هي قيمة منطقية تفحص ما إذا كان العدد فرديًا. أخيرًا، نقوم بتحويل المجموعة Set التي تم تصفيتها إلى قائمة List باستخدام دالةtoList()
ونقوم بطباعة النتيجة.
مثال 2: تصفية الأيام التي تبدأ بحرف ‘S’
الآن، دعنا نتعرف على تصفية أيام الأسبوع التي تبدأ بحرف ‘S’.
void main() { List<String> days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; List<String> startWithS = days.where((element) => element.startsWith("S")).toList(); print(startWithS); }
نتيجة الكود:
[Sunday, Saturday]
في المثال أعلاه، لدينا قائمة List من أيام الأسبوع. نستخدم عبارة where
لتصفية الأيام التي تبدأ بحرف ‘S’ بتوفير الشرط (element) => element.startsWith("S")
. دالة startsWith
تفحص ما إذا كان النص يبدأ بحرف معين. نقوم بتحويل المجموعة التي تم تصفيتها إلى قائمة ونقوم بطباعة النتيجة.
مثال 3: تصفية البيانات في الـ Map
لا تقتصر عبارة where
على القوائم فقط، بل يمكن استخدامها أيضًا مع الـ Map. لنرى مثالًا على تصفية البيانات في الـ Map بناءً على شرط معين.
void main() { Map<String, double> mathMarks = { "ram": 30, "mark": 32, "harry": 88, "raj": 69, "john": 15, }; mathMarks.removeWhere((key, value) => value < 32); print(mathMarks); }
نتيجة الكود:
{mark: 32.0, harry: 88.0, raj: 69.0}
في المثال أعلاه، لدينا Map تحتوي على أسماء الطلاب ودرجاتهم في مادة الرياضيات. نستخدم removeWhere
لتصفية البيانات التي تحقق شرطًا محددًا وهو value < 32
. دالة removeWhere
تقوم بإزالة البيانات التي تستوفي الشرط المحدد. أخيرًا، نقوم بطباعة الـ Map بعد التصفية.
عبارة where
في لغة دارت توفر وسيلة مريحة لتصفية العناصر في القوائم والمجموعات والـ Map وفقًا لشروط محددة. تتيح لك إنشاء مجموعات جديدة تحتوي فقط على العناصر التي تجتاز الشرط، مما يسهل عمليات التلاعب واسترجاع البيانات. من خلال استخدام where
بفعالية، يمكنك تبسيط الأكواد الخاصة بك وجعلها أكثر انتظامًا.