التابع Array.uniq!‎ في روبي

من موسوعة حسوب
< Ruby‏ | Array
مراجعة 10:32، 3 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يحذف التابع uniq!‎ العناصر المتكررة من مصفوفة.

إن مرِّرت كتلة برمجية، فستُستخدَم القيمة التي تعيدها هذه الكتلة لكل عنصر في عملية الموازنة.

يوازن التابع uniq!‎ القيم باستخدام التابع hash والتابع eql? لأجل تحسين الأداء. كما يقتطع التابع العناصر المتكررة من مصفوفة بالترتيب، إذ يحتفظ بالظهور الأول للقيمة المتكررة ويحذف القيمة الأخرى المتماثلة.

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

uniq!  ary or nil
uniq! { |item| ... }  ary or nil

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

تعاد المصفوفة نفسها المعطاة بعد إزالة العناصر المتكررة منها، أو تعاد القيمة nil إن لم يجرى أي تعديل على المصفوفة (أي إن لم يكن هنالك أي عناصر متكررة).

أمثلة

أمثلة على استخدام التابع uniq!‎:

a = [ "a", "a", "b", "b", "c" ]
a.uniq!   # => ["a", "b", "c"]

b = [ "a", "b", "c" ]
b.uniq!   # => nil

c = [["student","sam"], ["student","george"], ["teacher","matz"]]
c.uniq! { |s| s.first } # => [["student", "sam"], ["teacher", "matz"]]

انظر أيضًا

  • التابع uniq: يحذف العناصر المتكررة من مصفوفة ثم يضع العناصر المتبقية في مصفوفة جديدة.
  • التابع compact!‎: يحذف كل العناصر التي تساوي nil من المصفوفة التي استدعيت معه ثم يعيدها.
  • التابع delete_if: يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة true.
  • التابع reject!‎: يحذف كل عنصر من عناصر المصفوفة والتي تُقيّم في الكتلة البرمجية المحددة بالقيمة true. إن لم يحدث أي تغيير فستعيد nil.

مصادر