Cleaning Array

BioDread

Banned
سلام
من میخوام یه آرایه دادم که داخلش فقط string هست
که آرایه من 100 تا index داره
در این 100 تا index ممکنه کلمات مشابه داشته باشه
یعنی چی؟
یعنی اینکه ممکنه index 10 و index 12 جفتشون مقدار "مجید" رو داشته باشن

من میخوام یه کلاس بنوسیم که بیاد این آرایه رو از وجود کلمات مشابه پاک کنه

برام مهم نیست که sort آرایه بهم بوخوره یا length ان کم و زیاد بشه (یعنی به تعداد کلمات نا مشابه باشه)

اگه میشه منو تو ساختارش کمک کنید

من خودم چیزایی نوشتم اما خوب کار نمیکنه

یه ایده خوب بدین
مرسی !!!
 

++Hadi++

Active Member
امشب بهت جواب می دم الان سرم شلوغه و نمی تونم ولی آب خوردنه ...
واسه شروع بحث هم بگم تک تک درایه ها رو با حلقه for ، چک می کنی و اونا رو تک تک در یه ارایه دیگه ای قرار می دی و باید هر سری ، هر رشته با ارایه دوم چک شه و اگه در حین چک ، قبلا مشابه اون بود که continue می شه و اگه نه اونو در آرایه دوم پاس می ده و همینطور الی آخر . هم راههایی رو در c++ بلد بودم که می یومد و اونا رو با درایه های قبلیش مقایسه می کرد و در هر صورت امشب سعی می کنم بهت جواب بدم ...
بای...
 
آخرین ویرایش:

++Hadi++

Active Member
یکتا کردن مقادیر ارایه

سلام
بایو درد ، کد اصلاح شد اگه باز مشکلی دیدی بگو ...
ولی دیگه فکر نکنم مشکلی داشته باشه . شاید بشه بهتر و به صرفه تر این کد رو اصلاح کرد ولی این به مخ من رسید .
اینم کد :

PHP:
var myArray:Array=["Hadi","Hadi","Narges","Shila","Hadi","Hadi","Vahid","Hadi","Mehdi","Hadi"];
trace(myArray);//OutPut:"Hadi","Hadi","Narges","Shila","Hadi","Hadi","Vahid","Hadi","Mehdi","Hadi"
myFunction();
trace(myArray);//OutPut:Hadi,Narges,Shila,Vahid,Mehdi,,,,,
function myFunction(evt:Event=null):void
{
    for(var counter01:int=0;counter01<myArray.length-1;counter01++)
    {
        for(var counter02:int=counter01+1;counter02<myArray.length;counter02++)
        {
            if(myArray[counter01]==myArray[counter02])
            {
                myArray[counter02]=null;
            }
        }
    }
    for(var counter03:int=0;counter03<myArray.length;counter03++)
    {
        if(myArray[counter03]==null)
        {
            for(var counter04:int=counter03+1;counter04<myArray.length;counter04++)
            {
                if(myArray[counter04]==null)
                {
                    continue;
                }
                else
                {
                    myArray[counter03]=myArray[counter04];
                    myArray[counter04]=null;
                    break;
                }
            }
        }
    }
}

مثالو دانلود کن ... مثال هم اصلاح شد.
بای...
 

پیوست ها

  • Array.rar
    5.3 کیلوبایت · بازدیدها: 50
آخرین ویرایش:

++Hadi++

Active Member
سلام بایو
کد بالا و مثالش اصلاح شد .
دانلود کن و دیگه حالشو ببر.
تمامی اسم های غیر مشابه در ابتدای ارایه جمع می شه ...
بای...
 

BehrouzPc

پــــادشــاه فــلــــش
بایودرد عزیز

از کدهای زیر هم می تونی استفاده کنی
PHP:
function removeDuplicates(input:Array):Array { var duplicateFreeArray:Array = new Array(); var checker:Object = new Object(); for (i=0; i<input.length; i++) { var c:String = input[i]; if (!checker.hasOwnProperty(c)) { duplicateFreeArray.push(c); checker[c] = true;}} return duplicateFreeArray;}



و یا

PHP:
function removeDup(ac:Array):void {
for (var i:Number = 0; i < ac.length – 1; i++) {
for (var j:Number = i + 1; j < ac.length; j++) {
if (ac[i] === ac[j]) {
ac.splice(j, 1);
j–;
}
}
}
 
}


//test


 removeDup(["a","b","a","a","c"]);


موفق باشید
 

BioDread

Banned
میدونم غیره منطقی هست
اما
کلمه "بود" رو تو این جمله حذف کنید
 

پیوست ها

  • New Text Document (4).txt
    1.8 کیلوبایت · بازدیدها: 16

++Hadi++

Active Member
سلام
با متد split می تونی اون جمله رو بخش بخش کنی و بعد می تونی اونارو حذف کنی :
PHP:
var myString:String="I Can Remember Any Thing Cant Tell If this Is True Or dream I Remember You wished I Love You";
trace(myString);//OutPut:I Can Remember Any Thing Cant Tell If this Is True Or dream I Remember You wished I Love You
var myCharacter:String="I";
var myArray:Array=myString.split(" ");
myFunction(myString,myCharacter);//OutPut:Can,Remember,Any,Thing,Cant,Tell,If,this,Is,True,Or,dream,Remember,You,wished,Love,You,,,
function myFunction(myString:String,myCharacter:String):void
{
    for(var counter01:int=0;counter01<myArray.length;counter01++)
    {
        if(myArray[counter01]==myCharacter)
        {
            myArray[counter01]=null
        }
    }
    for(var counter02:int=0;counter02<myArray.length;counter02++)
    {
        if(myArray[counter02]==null)
        {
            for(var counter03:int=counter02+1;counter03<myArray.length;counter03++)
            {
                if(myArray[counter03]==null)
                {
                    continue;
                }
                else
                {
                    myArray[counter02]=myArray[counter03];
                    myArray[counter03]=null;
                    break;
                }
            }
        }
    }
    trace(myArray);
}
مثالو دانلود کن البته فرضم این بوده که تو می خواستی یه کلمه رو از کل جمله ات پاک کنی ...
و در این مثال منظور از myString همون جمله کلیت و منظور از myCharacter همون کلمه ای هست که می خوای از کل جمله ات حذف شه و کلمه مورد نظر از کل جمله ات پاک می شه و همشون (کلمات مونده ) در جلو (ابتدای ) آرایه ات جمع می شه ...
بای...
 

پیوست ها

  • Split.rar
    5.1 کیلوبایت · بازدیدها: 29

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

بالا