المسارات
/
jq
jq
/
التمارين
/
تسطيح المصفوفة
تسطيح المصفوفة

تسطيح المصفوفة

سهل

مقدمة

وصلت شحنة من مستلزمات الطوارئ، لكن هناك مشكلة. لحمايتها من التلف، الأغراض، وهي المصابيح اليدوية وحقائب الإسعافات الأولية والبطانيات، معبأة داخل صناديق، وبعض هذه الصناديق متداخلة على عدة طبقات داخل صناديق أخرى!

ولكي نكون مستعدين لأي حالة طوارئ، يجب أن يكون كل شيء في متناول اليد داخل صندوق واحد. هل يمكنك إخراج كل المستلزمات من صناديقها ووضعها في صندوق واحد، حتى تكون جاهزة عند أشد الحاجة إليها؟

التعليمات

خُذ مصفوفة متداخلة بأي عمق وأرجِع مصفوفة مسطّحة بالكامل.

لاحظ أن بعض مسارات اللغات قد تُدرج قيمًا شبيهة بـ null في مصفوفة المدخل، وأن طريقة تمثيل هذه القيم تختلف من مسار إلى آخر. وينبغي استبعاد هذه القيم من المصفوفة المسطّحة.

بالإضافة إلى ذلك، قد يكون المدخل من نوع بيانات مختلف وقد يحتوي أنواعًا مختلفة، وذلك حسب المسار.

راجع مجموعة الاختبارات لمعرفة التفاصيل.

مثال

المدخل: [1, [2, 6, null], [[null, [4]], 5]]

المخرج: [1, 2, 6, 4, 5]

تعليمات خاصة بـ jq

توجد دالة flatten مدمجة تحل هذا التمرين إلى حد كبير. جرّب أن تحل هذا بنفسك دون استخدام دالة flatten المدمجة، لتحصل على أقصى استفادة من هذا التمرين.

انقر هنا للحصول على تلميحات:
  • قد تكون الدالة العودية مفيدة. تعلّم المزيد عن العودية في درس العودية.
  • يمكن أن تساعدك دالة type.
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
jq Exercism

مستعد لبدء تسطيح المصفوفة؟

سجّل في Exercism لتتعلّم وتتقن jq عبر 12 مفهومًا75 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.