Hi, I've one Array of Objects:
var obj1 ={a:10, b:"z", c:"jj"};
var obj2 = {a:10, b:"r", c:"hh"};
var obj3 = {a:14, b:"t", c:"jj"};
var ar:Array = new Array(obj1,obj2,obj3);
If I want to get a new Array containing all the "records" where a=10 I call the
filter method:
ar.filter(myMeth);
and build a method to test the condition:
// I omit type etc.
function myMeth(e,i,a){
return e.a==10;
}
This is good but not very practical because:
1. you can't dinamically add the name of the property;
2. you can't dinamically add the value of the property to test;
You can't have:
return a['prop'] = parameter;
1. because it seems you can't add parameters;
2. because it seems you can't add properties on the fly;
Or better, there's a way, but one should create two class properties, one for
the property, the other one for the value and assing them before starting the
test. So, if you are in a for loop and you want to create n arrays based on
different tests, you must first change the value of these class properties.
Moreover you find yourself with class members set to a non-significant value at
the and of the loop.
Another solution (!) would be that of creating one method for each test...
So, what am I missing? Is there any other way to pass parameters? I thought one
could use Function.apply but it does not work. Delegates were an AS2 solution.
Which is the AS3 solution?
There are many others situations like this one, for example with array.some,
vector.filter, etc... every situation where we have a callback and a function
that accepts only one parameter...
Could you please help me? :-)