سؤال

أرجوك سامحني ، لكني أعرف أساسيات JS وكيفية كتابة/استدعاء وظيفة أساسية ، لكن في هذه الحالة أحاول مطابقة قائمة الفئات المصنفة من ألفا من DB لمطابقة مع مجموعة (غير alpha) من الفئات المذكورة على النحو المحدد أدناه (هذا هو الرمز المقترح للاستخدام من قبل مستخدم آخر في سؤال سألته حول كيفية تعيين ترتيب الفئات التي يتم إرجاعها). ومع ذلك ، لا يمكنني معرفة كيفية دمج إجابة رمز هذا الشخص في الكود الخاص بي.

ما عليك سوى رؤيته يتم تنفيذه مقابل قائمة مثال أخرى (لتقليد ما أود الاستيلاء عليه من DB) وكيف سأسميه في بيان حالة التبديل لالتفاف HTML حول أسماء الفئات وإعادتها إلى صفحة الويب بالترتيب الذي تم تعيينه i تريد أن تساعد الكثير. آسف إذا اتضح أن يكون واضحا. أحاول أن أتعلم ما بوسعي عندما واجهت هذه المشكلات. شكرًا!

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
    return businesses.filter(function (business) {
        return business.category === category;
    });
});
هل كانت مفيدة؟

المحلول

يبدو أن الكود المقدم على الأرجح يستخدم مكتبة JQuery JavaScript التي لديها بعض الوظائف المفيدة مثل map() لمعالجة المصفوفات.

يفترض الرمز أن لديك كائن / صفيف jQuery ، businesses هذا يحتوي على الشركات التي تحتاج إلى طلبها. إذا قرأناها من الخارج في

  1. تمرير كل عنصر في الصفيف بدوره إلى وظيفة الخريطة. تأخذ وظيفة الخريطة وظيفة لتقول كيف يجب تعيين كل عنصر.
  2. وظيفة مجهولة function (category)... يقبل إحدى الوسيطة ، تم تمرير العنصر المعين إليه في هذا التكرار وسيعيد نتيجة التعيين.
  3. النتيجة التي تم إرجاعها هي وظيفة تصفية الاتصال businesses وتمريرها وظيفة ليقول كيف ينبغي تصفية الشركات.
  4. وظيفة مجهولة function (business)... يقبل حجة ، تم تمرير العنصر المعين إليه على أنه businesses هل يتم تكرارها وإرجاع تلك التي تتطابق مع حجة الفئة في الوظيفة الخارجية.
  5. النتيجة النهائية هي مجموعة من العناصر التي طلبها صفيف الفئة [ 'F', 'C', 'A1', 'A2', 'A3' ]

إذا عدنا إلى المشكلة الأصلية, ، تحتاج إلى طلب قائمة بالفئات بناءً على تفضيل العميل. دعنا ننشئ كائنًا حرفيًا لتعيين الطلب

var map = {
    F : 5,
    C : 3,
    A1 : 1,
    A2 : 4,
    A3 : 2
}

يمكننا استخدام هذه الخريطة لطلب الصفيف باستخدام sort طريقة

var array = ['F', 'C', 'A1', 'A2', 'A3'];

array.sort(function(a,b) {
    return map[a] - map[b];
});

هذا يعيدنا ["A1", "A3", "C", "A2", "F"]

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top