ربما كنت تستخدم نوع الصفيف في جافا سكريبت.
ربما كنت تعتقد دائمًا أنه سيعطيك النتيجة الصحيحة.
على الأقل اعتدت أن أفكر في ذلك ، حتى يوم واحد ، رأيت الكود التالي:
نسخة الكود كما يلي:
[5،10،1] .sort () ؛
ربما والنتيجة غير متوقعة بعض الشيء. النتائج كما يلي:
نسخة الكود كما يلي:
[1،10،5]
بعد التحقيق الدقيق ، وجدت أن طريقة الفرز الافتراضي لم يتم فرزها وفقًا لبيانات تشكيل البلاستيك ، ولكن طريقة مطابقة السلسلة المستخدمة.
بمعنى آخر ، يتسبب هذا 1 من 10 في 10 في الكود أعلاه.
بالطبع ، هناك العديد من الحلول ، يمكنك نقل وظيفة رد الاتصال إلى طريقة الفرز.
نسخة الكود كما يلي:
[5،10،1] .SORT (وظيفة (x ، y) {
if (x> y) {return 1 ؛
}آخر{
العودة -1
}
}
) ؛
هذا سيحصل على النتائج التي تتوقعها.
إذا وجدت ذلك بالصدفة ، فقم بتسجيله لمنع النسيان.