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

شروع موضوع توسط yaa110 ‏24 ژوئن 2012 در انجمن برنامه فلش Flash

کلمات کلیدی:
  1. yaa110

    yaa110 کاربر فعال

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

    ۱. برای مثال آرایه زیر را در نظر بگیرید.
    کد (Text):
    var my_array:Array = [1,5,3,4,2,6,7,8,11,10,9,12,13,14];
    ۲. به کمک دستور زیر می توانید آرایه را به صورت الفبایی مرتب کنید.
    کد (Text):
    my_array.sort();
    trace(my_array); // output: 1,10,11,12,13,14,2,3,4,5,6,7,8,9
    ۳. همچنین با افزودن پارامتر NUMERIC به کد قبلی می توانید آرایه را به صورت عددی مرتب کنید.
    کد (Text):
    my_array.sort(Array.NUMERIC);
    trace(my_array); // output: 1,2,3,4,5,6,7,8,9,10,11,12,13,14
    ۴. برای چیدمان رندوم باید ابتدا یک آرایه کمکی بسازید.
    کد (Text):
    var temp:Array = new Array();
    ۵. حالا این آرایه را با پارامترهای آرایه اصلی پر می کنیم (به کمک دستور for). هر پارامتر در آرایه temp از یک آرایه با دو پارامتر تشکیل می شود که پارامتر اول یک عدد رندوم و پارامتر دوم مقدار معادل در آرایه اصلی است.
    کد (Text):
    for (var i:Number = 0; i < my_array.length; i++) {
        temp.push([Math.random(), my_array[i]]);
    }
    ۶. در ادامه به کمک دستور زیر آرایه temp را با توجه به پارامترهای اول هر پارامتر (عدد رندوم) مرتب می کنیم.
    کد (Text):
    temp.sort();
    ۷. سپس آرایه اصلی را خالی می کنیم (یک شیء جدید از آن می سازیم).
    کد (Text):
    my_array = new Array();
    ۸. درنهایت مقادیر مرتب شده به صورت رندوم را یکی یکی به آرایه اصلی وارد می کنیم. توجه کنید که در هر پارامتر آرایه temp باید مقدار پارامتر دوم (با اندیس ۱) را وارد کنید.
    کد (Text):
    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
     
    نوشته شده توسط yaa110 در ‏24 ژوئن 2012
    erfan.h و JavidFlasher از این پست تشکر کرده اند.
  2. JavidFlasher

    JavidFlasher کاربر فعال

    ارسال‌ها:
    901
    تشکر شده:
    792
    امتیاز دستاورد:
    93
    روش جالبی بود ممنون!!
     
    نوشته شده توسط JavidFlasher در ‏25 ژوئن 2012
    yaa110 از این پست تشکر کرده است.

به اشتراک بگذارید