ActionScript 2.0 :: Comparing Arrays - See If An Item Exists In Another Array?
Jan 29, 2009
I have some script which grabs stuff from an xml file. The stuff grabbed from the xml is in a loop to create an automatic menu. This is all fine and dandy. Say there are 9 items in the xml file, I get 9 menu items with their unique id's.What I want to do is define an array for comparison against the info taken from the xml file. Say in the xml file I have nodes set up for Apple, Pear, Banana and Orange. With my current script I would get a menu with these items on it. What I need to do is be able to specify the items I want to appear on the menu. For this example I would want Apple and Banana only.
I have experimented with if statements, and it takes too much code to accomplish what I want I am sure there is a more compact way. My idea is to set an array with the items I want in it,then when the information is taken from the xml file,I need the script to do the function of creating menu items only with the items I have specified in the array. Below I have added the code, which has been modified from Kirupa's own squirrel finder tutorial.I need the code to be as reusable as possible, ie only the array would need to change.In my code the variable featureType would contain the information I need to compare against.
Code:
//set limits on the features that need to display
// define array
var featureLimits:Array = ["Apple", "Banana"];[code].....
I know how to remove duplicates from an array, but what I'm trying to do is prevent an item from ever being added to an array in the first place if it already exists. I'm pulling in data from an xml feed in a loop, and I thought that searching for that values index would work, but no matter what, the index is always -1. Here's my code:
[Code]...
Maybe I'm misunderstanding the indexOf function, but I thought it was supposed to return -1 if a value did not exist in an array. What am I doing wrong?
Sorry if this is a little n00b-ish. I'm working in AS3. I've got an array of 8 buttons. I'm currently hiding the button that is clicked using e.currentTarget. How can I tell flash to make all the buttons that aren't the currentTarget to become visible (i.e. if a button has been hidden by previously being clicked, how do I tell it to become visible again when another button is clicked?)
I've searched everywhere and can't seem to find a clear explanation or basic example. How do you compare the elements of 2 arrays to see if there is a match?
The scenario is to create a lotto game that matches 6 user inputted numbers with 7 randomly generated numbers. The 7th number is a special case (eg bonus ball) WOULD LIKE TO SHOW A KIND HEARTED FALSH GENIUS ALL OF THE SCRIPT IF POSS! (its not tooo long) This code works, but it just outputs the default message: There seems to be a problem with my arrays not comparing? Part of the code is: (prioir to this the user inputs numbers, they are copied to text areas beginning with O, on a button press) On a second button press randomly generated number appear to a timer. //compareResult checks how many numbers match between the two sets of numbers to determine winnings.
I'd like to know how to compare one array to another array with objects.
For example:
Array1 = [one, blue, car]; // there will always be only one entry in this array - no Array1[1], no Array1[2], etc. Array2 = [product.number, product.color, product.type, product.cost, product.qty];
The actual content in Array2 would be something like this:
Array2[0] = [three, green, boat, 100, 5]; Array2[1] = [two, blue, truck, 200, 3]; Array2[2] = [one, red, car, 50, 20]; ...and so on, up to about 60.
I'm trying to figure out to go through all of Array2 to determine if there's a match to Array1. Since none of the entries in Array2 are the same, there will always be one match.In this instance, I want to match array1 with product.number, product.color, and product.type. My example has them as the first 3 criteria, though that may not always be the case.
Something along the lines of this:
Code:
function findMatch () { for(i = 0; i < Array2.length; i++) { if(all 3 Array1 items equals items in Array2[i]) {
[code]...
Background: I've a combobox search that allows a user to select from drop-downs. After a user selects items from all 3 drop-downs, they click a submit button, and there's a check to see if the criteria in the drop-downs matches anything in the Array2 (which it should, if you can select it, then it's in the array).
After that, the matched information is used to populate a movieclip. There's actually about 20 pieces of information associated with each product. However, I only need to match 3 of them.I've searched and found comparisons for arrays. But I don't see how they'd apply to my issue as I'm using objects and there are more items in array2 than in array1. Of course, they may apply, and I'm just not understanding how. I could create a 3rd array and move only the items needed for a match from the array2 to it. Then I could do a straight comparison between array1 and array3.
if i have 2 arrays let us say: array1 = ["a", "d","f","j","g","s","o"]; array2 = ["a","b","n","f","k"];
Let us say i need to check the availability of each item in array2 into array1 and i want to delete it from array1. so if "a" is in array1 and array2, i wanna know that and i wanna delete it from array1.
I have a movie clip called "colors" that contains five clips (squares of different colors). I want to see only one of those colored clips at a time and I want them to be chosen at random (which i've accomplished). I would also like to make sure the same clips isn't selected again until all the other clips have been selected. On frame 1, I set up each main clip as a class:
function clipsClass(){} clipsClass.prototype = new MovieClip; clipsClass.prototype.onLoad = function(){ pickClips(this); } Object.registerClass("colors", clipsClass); [Code]....
Im trying to comapre the order and value of two arrays...
[Code]...
The values must be identical by the order and values exp: checkNums[0] == checkBallPress[0]; ps: the array numbers are inputed by user, I typed this values just for the examples sake I tried to do a nested for loop but it doesnt work.
I have two arrays of objects. Each object has a unique name property besides few others. One of the array is a local copy and the other one is sent from server after regular intervals. The local copy of arrays is then used to add a movieclips into a container.Now, I want that when I receive an array from the server, I compare it with the one which is already with me locally such that the items which were not in the received array but were there in the local array, get removed from the container and the newly added ones only get added. The items which were present in both local and remote array remain as it is.
I have this code that's meant to compare two arrays for matching numbers. Depending on how many matches there are, a certain message will be displayed in a dynamic text field. But for some reason it's not working, can anyone figure out why?
ActionScript Code: var _num:Number = 0; function compare_Arrays() { for(var i = 0; i < numbersChosen.length; i++) { for (var k = 0; k < randomArray.length; k++) { if (numbersChosen[i] == randomArray[k]) { [Code] .....
I'm trying to do a simple word counter that counts only unique words. So every new word in the inputWordArray gets added to a wordBankArray, but words that have been used previously would be ignored. I've got something that feels really close to be done but I think I need some kind of switch or break somewhere to keep it from adding on to the end of the array.
Here's my code and the output so far. PHP Code: var inputWordArray:Array=["word1","word2","word3", "word1"]; var wordBankArray:Array=["word1"]; var matches:Boolean = false for (var i:Number = 0; i < inputWordArray.length; i++) { trace("In inputWordArray loop with "+inputWordArray[i]); for (var j:Number = 0; j < wordBankArray.length; j++) { [Code] ..... //What I'm expecting: "Final wordBankArray: word1,word2,word3"
I have the following set up: 6 text input areas when button 1 is pressed these numbers are copied to 6 text areas these 6 (user input) with text areas appear and when button 2 is pressed a further 7 (result) text areas that appear to a timer and contain randomly generated numbers to string I need to compare these two groups of text areas in a way that treats the 7th text area as a special excluded case:
I'm having a hard time wrapping my head around this problem. I have 2 unsorted arrays that need to be compared, array2 must contain all elements of array1 and array2 can any number of extra elements without affecting the result. I don't see any benefits from sorting the arrays and comparing the string values as array2 can have extra information causing noise.
I have a dataProvider and there is an object in the dataProvider. I want to know if there is a way to see if you can check to see if part of the object exists. So lets say I have an object with usernames and passwords and I want to add a username to that dataProvider
I am running into some trouble adding an array into another array to create a multi-dimensional array.The code appears as below:
var slideDataArray:Array = new Array(); var slideShowDataArray:Array = new Array(); slideDataArray[0] = xmlData.SlideShowParameters.SlideShowImagesDirectory;[code]........
I am looking for a means of placing the slideDataArray into a 'slot' or value of slideShowDataArray so that I can in the end pass the slideShowDataArray as a parameter to another function.As of now, the last slideDataArray appears 11 times (the loop runs 11 times) in slideShowDataArray and the way the code is written the slideDataArray is unique every iteration of the loop.
I have an array which has strings for the key instead of numbers. when i use .toString() on this array, it does not output a string, leading me to believe that .toString only works when you have numerical keys. Is there an easy way I could compare two of the above arrays?
I'm having a problem with the supposed AI that I've created for a card game that I'm making. The purpose is to have the function meant for 'player 2' to run after the human player has put down a card. What the function is supposed to do is to compare the value of the card which is stored in a array, and then according to the value assigned the AI is supposed to compared with the 4 cards in its hand and decide on which is the best possible card to pick. Though the human player's code seem to work as expected, for some reason the function for the computer did not run and instead churned out a huge chunk of data in the output. I will attach 2 separate text files; one will include the portion of the code which I highly suspect is giving the problem, the second will be the supposed error message.
so here is the problem that I have so far. I tried to simplify my code so I can attempt to figure this out, but I have had absolutely no luck. I have a viewstack that contains 1 dropdown per stack. They share the same data provider. What I want to do is to select the item contents from the first one. Once I do that, when I click a button to the next stack I have a function that searches from index 0 to the dataprovider length and if the item from the first stack matches the second one, I want to have the second dropdown pick that item up and display it. I have it matching, and I try to select it, but when I run the application it shows up like nothing is selected. Here is what I have:
edit: I got it to work for a simple example, but when I attempt to use it in my more complicated example, on that button click it for some reason resets the value of selectedIndex to -1. How do I prevent this from happening? This is working code for the simple example
Well, I looked at the example, and looks like that was still not what I wanted. Interestingly, I took the middle for loop out and now it appears I am not having issues anymore.[code]
what's a simple way to combine arrays with as3? by combine, i mean that contents of one array are pushed into another array.I already tried a for loop and push.
I'm using a multi-dimensional array (openImage[]) to track the open images in my multi-dimensional array (Images[]).
I would like to check and see if an element in a multi-dimensional array exists before I access it because there are rare occurrences where the data in openImage[] is not valid. I keep on getting errors every way I've tried it.[code]...