"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني خلط صفيف في جافا سكريبت بكفاءة؟

كيف يمكنني خلط صفيف في جافا سكريبت بكفاءة؟

نشر في 2025-03-04
تصفح:647

How Can I Efficiently Shuffle an Array in JavaScript?

من خلال تبديل العناصر عشوائياً ، فإنه يضمن أن كل طلب ممكن لديه فرصة متساوية للحدوث. var j ، x ، i ؛ لـ (i = A.Length-1 ؛ i> 0 ؛ i--) { j = math.floor (math.random () * (i 1)) ؛ x = a [i] ؛ a [i] = a [j] ؛ a [j] = x ؛ } إرجاع أ ؛ } تكرر هذه الخوارزمية من خلال الصفيف بترتيب عكسي ، وتبديل كل عنصر بعنصر عشوائي أمامه في الصفيف. يتم خلط الصفيف الناتج بسبب الطبيعة العشوائية للمقايضات.

الاستخدام

['1' ، '2' ، '3' ، '4' ، '5' ، '6' ، '7' ، '8' ، '9'] ؛ خلط ورق اللعب (myarray) ؛

إصدار es6

function shuffle(a) {
    var j, x, i;
    for (i = a.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i   1));
        x = a[i];
        a[i] = a[j];
        a[j] = x;
    }
    return a;
}

تنفيذ النموذج الأولي

يمكن تنفيذ هذه الخوارزمية كطريقة نموذج أولي لتسهيل خلط المصفوفات المباشر: القيمة: function () { ل (دعني أنا = this.length-1 ؛ i> 0 ؛ i--) { const j = math.floor (math.random () * (i 1)) ؛ [هذا [i] ، هذا [J]] = [هذا [J] ، هذا [i]] ؛ } إرجاع هذا ؛ } }) ؛

يتيح هذا التنفيذ خلط المصفوفات باستخدام بناء الجملة arr.shuffle ().

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3