بطاقات هدايا Bunnings Warehouse هي فكرة هدية مثالية. اختيار المستودع بأكمله. أي مناسبة؛ أعياد الميلاد، التهاني، الذكرى السنوية، تدفئة المنزل، حفلات الزفاف.
لحل هذه المشكلة، نحتاج إلى إعادة تهيئة متطلبات النظام إلى تنسيق HTML منظم. يمكن توفير متطلبات النظام بتنسيقين مختلفين، ومهمتنا هي التعامل مع كلا التنسيقين بشكل مناسب.
### النهج
تتضمن المشكلة تحويل متطلبات النظام إلى بنية HTML محددة. يمكن أن يكون الإدخال بتنسيقين:
1. مجموعة من الكائنات حيث يحتوي كل كائن على متطلب واحد (على سبيل المثال، نظام التشغيل والمعالج).
2. مصفوفة من الكائنات حيث يحتوي كل كائن على اسم نظام وسلسلة HTML تمثل المتطلبات.
يتضمن الحل:
1. الكشف عن تنسيق الإدخال.
2. إنشاء بنية HTML المناسبة بناءً على التنسيق المكتشف.
إذا تم تنظيم الإدخال باستخدام مفاتيح «النظام» و «المتطلبات»، فسيتم تضمين متطلبات كل نظام كما هي. وبخلاف ذلك، يتم استخراج المتطلبات من أزواج القيم الرئيسية وتنظيمها في قائمة غير مرتبة.
### كود الحل
``جافا سكريبت
متطلبات إعادة تنسيق الوظيفة (الإدخال) {
السماح بالإخراج = «؛
إذا (input.length > 0 && 'النظام' في الإدخال [0]) {
لـ (اترك طلب الإدخال) {
نظام السماح = req.system؛
السماح بمتطلبات HTML = req.requirement.replace (/'/g، «')؛
الإخراج += `
$ {system} متطلبات النظام
الحد الأدنى من المواصفات
$ {متطلبات HTML}
`؛
}
} وإلا {
السماح للنظام = الإدخال [0]؟ الإدخال [0] .OS || «الكمبيوتر الشخصي»: «الكمبيوتر الشخصي»؛
متطلبات الحيوانات الأليفة = الإدخال.flatMap (obj => {
مفتاح السماح = Object.keys (obj) [0]؛
قيمة السماح = object.values (obj) [0]؛
إرجاع `
$ {key}: $ {value}`؛
}) .join («)؛
الإخراج = `
$ {system} متطلبات النظام
الحد الأدنى من المواصفات
`؛
}
عائد الإخراج؛
}
```
### شرح
1. ** اكتشاف الإدخال**: تتحقق الوظيفة أولاً مما إذا كان الإدخال منظمًا باستخدام مفاتيح «النظام» و «المتطلبات». إذا كان الأمر كذلك، تتم معالجة كل متطلب على حدة.
2. ** إنشاء HTML للإدخال الهيكلي**: بالنسبة لكل نظام، يتم إنشاء HTML من خلال تضمين اسم النظام، متبوعًا بسلسلة HTML المطلوبة.
3. ** إنشاء HTML للإدخال غير المهيكل**: إذا كان الإدخال لا يحتوي على مفاتيح «النظام»، تفترض الوظيفة أن جميع الكائنات هي متطلبات لنظام واحد. يتم استخراج المتطلبات من أزواج القيم الرئيسية وتنظيمها في قائمة غير مرتبة.
يضمن هذا النهج تقديم المتطلبات دائمًا بتنسيق متسق وسهل الاستخدام، بغض النظر عن بنية الإدخال.
كن أول من يُقيّم هذا المنتج!
مشاركة