ActionScript 3.0 :: How To Remove Duplicates From Array
Oct 21, 2010
I want to remove duplicates from an array. I've a command which works very fine:
arrayID = (arrayID.filter(function(e:*, j:int, a:Array) {return a.indexOf(e) == j;}, this));
This code is for normal arrays which contain only normal values (number or string).. but i've an array in my script, which has objects in that...
var arrayID:Array = [{value:1, name:"asd"},{value:2, name:"asd"},{value:3, name:"asd"},{value:1, name:"qwe"},{value:2, name:"qwe"},{value:3, name:"qwe"},{value:4, name:"asd"}];
What I want is I want to remove duplicates of "name" element! so after removing it should become:
arrayID = [{value:1, name:"asd"}, {value:1, name:"qwe"}];
I believe it is quite easy even I tried to play with the code but I could not do...
I just have an array of names (strings) in flash, and I want to make sure that any duplicates from the array are removed, or at least that a function is performed only once per reocurring value in the array.
Again, I'm having an issue with the final stages of my little drag and drop experiment.Here's the problem : I have an array of animals, all to be sorted into one of three boxes - Fits, Does Not Fit and Not SureNow if I place an animal in one of those three boxes, the name of the animal is supposed to be going into the correct place in a staggered array :
Actionscript Code: var PassArray:Array = new Array(new Array(),new Array(),new Array());function letGo(event:MouseEvent):void { event.target.stopDrag(); event.target.x
The problem is that every snowflake is created over everything else on the stage and I need to hide all snowflakes for some frames to make transmission between two scenes.Transmission is transparent black rectangle over the scene and alpha is slowly going to 100%... but the snowflakes are visible over the black rectangle - how to remove them all ?
I am creating an educational game. I have several arrays. These arrays have duplicate problems and that is fine. The problem is, I do not want the duplicate problems to appear right after each other. I have a function that randomizes the arrays. I am trying to create a function that, if a duplicate is found immediately after the original, it will be moved to the end of the array.
So far I have this... function noRepeat(){ var len = aNineb.length; for (i=0; i<len; i++){ before = i - 1; trace("aNineb = " + aNineb[i][0]); [Code] .....
But it never gets to the extra problems. Do I need to pop it or slice it out before I push it to the bottom? And, how could I make this a prototype thing, so I could just type in aNineb.noRepeat(); ?
I am making a drag and drop game using AS2 in Flash CS5 where mc items are duplicated and enlarged from a menu and can be placed anywhere on the stage to create a custom robot. Each part (arms, head, feet, etc.) is it's own mc with unique instance names. I have the drag and drop part all figured out, and I even have the duplicateMovieClip part working...
HOWEVER... Whenever I move from the current frame that an object was duplicated in, to another frame and then back, the clips dissapear one by one if you try to create a new one. Each list of menu items are in their own frames (heads, torsos, arms, etc.). As the duplicates are made, they remain on stage no matter what frame you go to and can still be dagged around, which is good, but as I said previously, they dissappear when you create a new duplicate. Not all disappear at once, only older created duplicates disappear as you bring in new duplicates.
Following code removes duplicates from an array. But the problem is, it modifies the original array. Can we create a new array which does not have duplicates and keep the original array intact?
I have XML file with a item categoryName. I put these into an array - menuArray. But there are duplicates in the array and I need to know how to sort out the duplicates so just one of each of the items remains in the array to build my menu.
I can find plenty of ways to remove duplicates with literal datatypes, and I guess at an absolute pinch I could use toString and adopt one of those, but there surely must be a better way of doing this?
I will do my best in explaining what is happening. I have a feeling it has something to do with how I declare things, but I am kinda new with AS3 so please have patience.
On my stage I have an movie clip (mContainer). In the library I have another movieclip (mElement), that has been exported for actionScript as mElement.
I've been trying to remove duplicates from an array for a while, or even preventing them, and I'm having nothing but trouble.There's a lot of code to go through.I'm creating an array with objects inside it like so...
Code: private function getJsonResult(event:Event):void { //ta.text+=http.lastResult;
I have an array used to track shots fired from a cannon, and when they hit the ground they are removed.
I would like to know what is the most efficient way of finding and removing a certain element from an array. I heard that using pop() instead of splice() was faster, is it ?
Also, the big question I have is that the only way I see of actually finding the element in the array is using
Code: for(i=0;i<array.length;i++){ if(array[i] == movieClipToRemove){ //i == movieClip index in the array } }
Then I would use either splice() or pop() to remove it from the array before deleting the MC. Is there a better way than scanning through the whole array comparing each element to the triggering MC ?
If i have array like var my_Arr:Array = new Array("a", "b", "c");and i have button to use random element of ths array , is there any to remove that element that if i press the button again i won't find the last element ?
I'm writing an application in Flex / ActionScript and have a number of class member variables of type Array storing data. My question is: what's the "best" way to clear out an Array object? I noticed the ArrayCollection class has a function removeAll() which does this, but the basic Array class does not. Some possibilities I've considered are: Iterating through the array, calling pop or shift on each element Setting the array length to 0 Setting the member variable to a "new Array()" or "[]"
I am trying to remove an object from an array. but from some reason its not working. I am under the impression that a splice accepts 2 parameters. the position of the array. and for parameter 2 , how many to delete from then on out.I just want to delete one array so I am doing this array. splice (i,0);but it isn't working. can someone tell me what i am doing wrong. enlighten me on how it suppose to work.
I have an array of objects. Each object has a property called name. I want to efficiently remove an object with a particular name from the array. Is this the BEST way?
private function RemoveSpoke(Name:String):void { var Temp:Array=new Array; for each (var S:Object in Spokes) {
I have an array of questions for an interactive quiz game. When you answer a question, functionally I want that question to be removed from the array (cat4Questions) so that it won't come back for the player so I tried to splice it.I wasn't sure if it was working so I traced the array. While I was expecting "question1, question2, question3, question4" to be traced, "question1, question2, question3, question4, question5" was the result of my trace.This is the line of code where I try to splice the array:cat4Questions.splice(cat4Questions.length,1);trace(cat4Questions);