سؤال تنفيذ JavaScript: كيفية جعل قيم عرض الوظيفة هذه
-
29-09-2019 - |
سؤال
أرجوك سامحني ، لكني أعرف أساسيات 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
هذا يحتوي على الشركات التي تحتاج إلى طلبها. إذا قرأناها من الخارج في
- تمرير كل عنصر في الصفيف بدوره إلى وظيفة الخريطة. تأخذ وظيفة الخريطة وظيفة لتقول كيف يجب تعيين كل عنصر.
- وظيفة مجهولة
function (category)...
يقبل إحدى الوسيطة ، تم تمرير العنصر المعين إليه في هذا التكرار وسيعيد نتيجة التعيين. - النتيجة التي تم إرجاعها هي وظيفة تصفية الاتصال
businesses
وتمريرها وظيفة ليقول كيف ينبغي تصفية الشركات. - وظيفة مجهولة
function (business)...
يقبل حجة ، تم تمرير العنصر المعين إليه على أنهbusinesses
هل يتم تكرارها وإرجاع تلك التي تتطابق مع حجة الفئة في الوظيفة الخارجية. - النتيجة النهائية هي مجموعة من العناصر التي طلبها صفيف الفئة
[ '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"]