الفرق بين المراجعتين ل"Ruby/Array/delete if"

من موسوعة حسوب
< Ruby‏ | Array
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.delete_if</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby A...')
 
سطر 4: سطر 4:
 
[[تصنيف: Ruby Array]]
 
[[تصنيف: Ruby Array]]
 
يحذف التابع <code>delete_if</code> جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة <code>true</code>.
 
يحذف التابع <code>delete_if</code> جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة <code>true</code>.
 +
 
يُعدَّل على المصفوفة مباشرةً في كل مرَّة تستدعى فيها الكتلة، وليس بعد انتهاء التكرار (<code>iteration</code>).
 
يُعدَّل على المصفوفة مباشرةً في كل مرَّة تستدعى فيها الكتلة، وليس بعد انتهاء التكرار (<code>iteration</code>).
إن لم تمرَّر أي كتلة إلى هذا التابع، فسيعيد كائنًا من النوع <code>Enumerator</code>.
+
 
 +
إن لم تمرَّر أي كتلة إلى هذا التابع، فسيعيد كائنًا من النوع <code>[[Ruby/Array/Enumerator|Enumerator]]</code>.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby"> delete_if { |item| block } → ary
 
<syntaxhighlight lang="ruby"> delete_if { |item| block } → ary
سطر 21: سطر 23:
 
* التابع [[Ruby/Array/delete_at | <code>delete_at</code>]]: يحذف عنصرًا ذا فهرس محدَّد من مصفوفة.
 
* التابع [[Ruby/Array/delete_at | <code>delete_at</code>]]: يحذف عنصرًا ذا فهرس محدَّد من مصفوفة.
 
* التابع  [[Ruby/Array/keep_if | <code>keep_if</code>]]: يبقي جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية.
 
* التابع  [[Ruby/Array/keep_if | <code>keep_if</code>]]: يبقي جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية.
* التابع [[Ruby/Array/reject! | <code>reject!</code>]]!‎: يحذف جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا.
+
* التابع [[Ruby/Array/reject! | <code>reject!</code>]]: يحذف جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا.
* التابع [[Ruby/Array/compact! | <code>compact!</code>]]!‎: يحذف كل العناصر التي تساوي <code>nil</code> من المصفوفة التي استدعيت معه ثم يعيدها.
+
* التابع [[Ruby/Array/compact! | <code>compact!</code>]]: يحذف كل العناصر التي تساوي <code>nil</code> من المصفوفة التي استدعيت معه ثم يعيدها.
* التابع [[Ruby/Array/uniq! | <code>uniq!</code>]]!‎: يحذف العناصر المتكررة من مصفوفة.
+
* التابع [[Ruby/Array/uniq! | <code>uniq!</code>]]: يحذف العناصر المتكررة من مصفوفة.
 
==مصادر==
 
==مصادر==
* قسم التابع Array.delete_if في الصنف Array في توثيق روبي الرسمي.
+
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-delete_if قسم التابع Array.delete_if في الصنف Array في توثيق روبي الرسمي.]

مراجعة 09:44، 6 سبتمبر 2018

يحذف التابع delete_if جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة true.

يُعدَّل على المصفوفة مباشرةً في كل مرَّة تستدعى فيها الكتلة، وليس بعد انتهاء التكرار (iteration).

إن لم تمرَّر أي كتلة إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator.

البنية العامة

 delete_if { |item| block }  ary
delete_if  Enumerator

القيم المعادة

تعاد المصفوفة نفسها بعد حذف العناصر التي أعيدت معها القيمة true عند تطبيق الكتلة block على كلٍّ منها، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block.

أمثلة

مثالٌ على استخدام التابع delete_if :

 scores = [ 97, 42, 75 ]
scores.delete_if {|score| score < 80 }   #=> [97]

انظر أيضًا

  • التابع delete: يحذف جميع عناصر المصفوفة المساوية لقيمة محددة ثم يعيد آخر عنصر حذفه، أو القيمة nil أو ناتج تطبيق كتلة برمجية محددة إن لم يعثر على أي عنصر لحذفه.
  • التابع delete_at: يحذف عنصرًا ذا فهرس محدَّد من مصفوفة.
  • التابع keep_if: يبقي جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية.
  • التابع reject!‎: يحذف جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا.
  • التابع compact!‎: يحذف كل العناصر التي تساوي nil من المصفوفة التي استدعيت معه ثم يعيدها.
  • التابع uniq!‎: يحذف العناصر المتكررة من مصفوفة.

مصادر