پرسش
چطور میتونیم یک آرایه رو در جاوااسکریپت به صورت تصادفی مرتب کنیم؟
How to randomize (shuffle) a JavaScript array?
من یک آرایه در جاوااسکریپت دارم و میخوام به صورت تصادفی عناصرش رو مرتب کنم. بهترین روش برای انجام این کار چیه؟ آیا الگوریتم خاصی برای این کار وجود داره که نتایج دقیق و تصادفی ارائه بده؟
1403/05/23
پاسخ
محمدامین سعیدی راد
اگر به دنبال یه روش سریع و کوتاه برای شافل کردن آرایه تو جاوااسکریپت هستی، میتونی از تابع sort
همراه با Math.random
استفاده کنی. این روش خیلی ساده و سرراسته، اما دقت و تصادفی بودنش مثل الگوریتمهای پیچیدهتر مثل Fisher-Yates نیست.
function shuffle(array) { return array.sort(() => Math.random() - 0.5); } let arr = [1, 2, 3, 4, 5]; let shuffledArr = shuffle(arr); console.log(shuffledArr);
این کد هر بار که sort
رو با Math.random()
صدا میزنی، عناصر آرایه رو به صورت تصادفی جابهجا میکنه. هرچند که این روش کاملاً تصادفی و مناسب برای کارهای ساده است ، ولی برای پروژههای جدیتر پیشنهاد میکنم از روشهای دقیقتر مثل Fisher-Yates استفاده کنی.
پاسخ: 1403/05/23
آخرین آپدیت: 1403/07/07