الفرق بين المراجعتين لصفحة: «Ruby/Array/flatten»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Array]] | [[تصنيف: Ruby Array]] | ||
يجعل التابع <code>flatten</code> المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي ( | يجعل التابع <code>flatten</code> المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (recursively)؛ أي أنَّ كل عنصر من عناصر المصفوفة المعطاة والذي قد يكون نفسه مصفوفةً متشعبةً من مستوًى واحدٍ أو أكثر ستُستخلَص عناصره وتضاف إلى مصفوفة جديدة. | ||
يقبل هذا التابع تمرير المعامل <code>level</code> الاختياري الذي يحدد مستوى التعاودية (recursion level). | يقبل هذا التابع تمرير المعامل <code>level</code> الاختياري الذي يحدد مستوى التعاودية (recursion level). | ||
سطر 26: | سطر 26: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* التابع [[Ruby/Array/flatten! | <code>flatten</code>]] | * التابع [[Ruby/Array/flatten!|<code>flatten!</code>]]: يشبه التابع <code>flatten</code> في جميع النواحي باستثناء أنه لا يضع الناتج في مصفوفة جديدة وإنما يعدل على المصفوفة الأصلية نفسها. | ||
* التابع [[Ruby/Array/dig | <code>dig</code>]]: يستخرج العنصر المتشعِّب (nested value) المحدَّد بسلسلة الوسائط <code>idx</code> الممرَّرة إليه وذلك عبر استدعاء [[Ruby/Array/dig | <code>dig</code>]] عند كل مستوى تشعب. | * التابع<nowiki/>[[Ruby/Array/dig | <code>dig</code>]]: يستخرج العنصر المتشعِّب (nested value) المحدَّد بسلسلة الوسائط <code>idx</code> الممرَّرة إليه وذلك عبر استدعاء<nowiki/>[[Ruby/Array/dig | <code>dig</code>]] عند كل مستوى تشعب. | ||
==مصادر== | ==مصادر== | ||
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-flatten قسم التابع flatten في الصنف Array في توثيق روبي الرسمي.] | * [https://ruby-doc.org/core-2.5.1/Array.html#method-i-flatten قسم التابع flatten في الصنف Array في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 07:18، 2 أكتوبر 2018
يجعل التابع flatten
المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (recursively)؛ أي أنَّ كل عنصر من عناصر المصفوفة المعطاة والذي قد يكون نفسه مصفوفةً متشعبةً من مستوًى واحدٍ أو أكثر ستُستخلَص عناصره وتضاف إلى مصفوفة جديدة.
يقبل هذا التابع تمرير المعامل level
الاختياري الذي يحدد مستوى التعاودية (recursion level).
البنية العامة
flatten → new_ary
flatten(level) → new_ary
المعاملات
level
عدد صحيح يحدد مستوى التشعُّب التي يراد استخلاص العناصر الواقعة فيه وجعلها أحادية.
القيم المعادة
تعاد مصفوفة جديدة أحادية البعد تحوي جميع عناصر المصفوفة المعطاة بعد استخراج العناصر المتشعبة منها مهما كان مستوى تشعبها أو بحسب مستوى التشعب level
(إن أعطي).
أمثلة
أمثلة على استخدام التابع flatten
:
s = [ 1, 2, 3 ] #=> [1, 2, 3]
t = [ 4, 5, 6, [7, 8] ] #=> [4, 5, 6, [7, 8]]
a = [ s, t, 9, 10 ] #=> [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
a.flatten #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [ 1, 2, [3, [4, 5] ] ]
a.flatten(1) #=> [1, 2, 3, [4, 5]]
انظر أيضًا
- التابع
flatten!
: يشبه التابعflatten
في جميع النواحي باستثناء أنه لا يضع الناتج في مصفوفة جديدة وإنما يعدل على المصفوفة الأصلية نفسها. - التابع
dig
: يستخرج العنصر المتشعِّب (nested value) المحدَّد بسلسلة الوسائطidx
الممرَّرة إليه وذلك عبر استدعاءdig
عند كل مستوى تشعب.