التابع Array.flatten!
في روبي
يشبه التابع flatten!
التابع flatten
في جميع النواحي باستثناء أنه لا يضع الناتج في مصفوفة جديدة وإنما يعدِّل على المصفوفة الأصلية نفسها.
يقبل هذا التابع تمرير المعامل level
الاختياري الذي يحدد مستوى التعاودية (recursion level).
البنية العامة
flatten! → ary or nil
flatten!(level) → ary or nil
المعاملات
level
عدد صحيح يحدد مستوى التشعُّب التي يراد استخلاص العناصر الواقعة فيه وجعلها أحادية.
القيم المعادة
تعاد المصفوفة نفسه المعطاة بعد تحويلها إلى مصفوفة أحادية البعد أي بعد استخراج العناصر المتشعبة منها مهما كان مستوى تشعبها أو بحسب مستوى التشعب level
(إن أعطي)، أو تعاد القيمة nil
في حال لم يُجرَى أي تغيير على المصفوفة.
أمثلة
أمثلة على استخدام التابع flatten!
:
a = [ 1, 2, [3, [4, 5] ] ]
a.flatten! #=> [1, 2, 3, 4, 5]
a.flatten! #=> nil
a #=> [1, 2, 3, 4, 5]
a = [ 1, 2, [3, [4, 5] ] ]
a.flatten!(1) #=> [1, 2, 3, [4, 5]]
انظر أيضًا
- التابع
flatten
: يجعل المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (recursively)؛ أي أنَّ كل عنصر من عناصر المصفوفة المعطاة والذي قد يكون نفسه مصفوفةً متشعبةً من مستوًى واحدٍ أو أكثر ستُستخلَص عناصره وتضاف إلى مصفوفة جديدة. - التابع
dig
: يستخرج العنصر المتشعِّب (nested
value
) المحدَّد بسلسلة الوسائطidx
الممرَّرة إليه وذلك عبر استدعاء ()dig
عند كل مستوى تشعب.