مرتب کردن آرایه به صورت رندوم

yaa110

کاربر فعال
در این درس نحوه مرتب کردن پارامترهای یک آرایه به صورت رندوم آموزش داده می شود. برای مثال با استفاده از این چیدمان رندوم می توانید تصاویر یک گالری عکس را در هر بار به صورت رندوم نشان دهید.

۱. برای مثال آرایه زیر را در نظر بگیرید.
کد:
var my_array:Array = [1,5,3,4,2,6,7,8,11,10,9,12,13,14];

۲. به کمک دستور زیر می توانید آرایه را به صورت الفبایی مرتب کنید.
کد:
my_array.sort();
trace(my_array); // output: 1,10,11,12,13,14,2,3,4,5,6,7,8,9

۳. همچنین با افزودن پارامتر NUMERIC به کد قبلی می توانید آرایه را به صورت عددی مرتب کنید.
کد:
my_array.sort(Array.NUMERIC);
trace(my_array); // output: 1,2,3,4,5,6,7,8,9,10,11,12,13,14

۴. برای چیدمان رندوم باید ابتدا یک آرایه کمکی بسازید.
کد:
var temp:Array = new Array();

۵. حالا این آرایه را با پارامترهای آرایه اصلی پر می کنیم (به کمک دستور for). هر پارامتر در آرایه temp از یک آرایه با دو پارامتر تشکیل می شود که پارامتر اول یک عدد رندوم و پارامتر دوم مقدار معادل در آرایه اصلی است.
کد:
for (var i:Number = 0; i < my_array.length; i++) {
    temp.push([Math.random(), my_array[i]]);
}

۶. در ادامه به کمک دستور زیر آرایه temp را با توجه به پارامترهای اول هر پارامتر (عدد رندوم) مرتب می کنیم.
کد:
temp.sort();

۷. سپس آرایه اصلی را خالی می کنیم (یک شیء جدید از آن می سازیم).
کد:
my_array = new Array();

۸. درنهایت مقادیر مرتب شده به صورت رندوم را یکی یکی به آرایه اصلی وارد می کنیم. توجه کنید که در هر پارامتر آرایه temp باید مقدار پارامتر دوم (با اندیس ۱) را وارد کنید.
کد:
for (i = 0; i < temp.length; i++) {
    my_array.push(temp[i][1]);
}

trace ("random:", my_array); // output: 6,2,13,10,8,7,5,14,1,11,12,4,9,3

منبع: http://flashcenter.ir/blog/?p=239
 

جدیدترین ارسال ها

بالا