Avatar ·

كيفية خلط عناصر المصفوفة بشكل صحيح في JavaScript؟

مرحبًا بالجميع! أنا مبتدئ في JavaScript وواجهت مهمة: أحتاج إلى خلط عناصر المصفوفة بترتيب عشوائي. على سبيل المثال، لدي مصفوفة تحتوي على بطاقات للعبة: ```javascript const cards = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']; ``` أريد أن يصبح ترتيب العناصر عشوائيًا بعد الخلط. جربت استخدام `Math.random()` مع `sort()`، هكذا: ```javascript cards.sort(() => Math.random() - 0.5); ``` يبدو أنه يعمل، لكنني قرأت أن هذا الأسلوب غير صحيح لأن التوزيع لن يكون متساويًا. علاوة على ذلك، قد تبقى بعض العناصر في أماكنها أكثر من غيرها. أرجو إرشادي حول كيفية تنفيذ خلط فيشر-يتس (أو أي خوارزمية صحيحة أخرى) باستخدام JavaScript النقي؟ من المهم أن تكون الدالة عاملة مع أي مصفوفة، وليس فقط مع الأرقام. شكرًا مقدمًا على المساعدة! <<>>

أفضل إجابة: خوارزمية فيشر-يتس (كنوث)

أنت محق تمامًا: إن