the keys of myArray
Richard Gaskin
ambassador at fourthworld.com
Fri Sep 8 13:08:52 EDT 2006
jbv wrote:
> your suggestion for asking the list for help to optimize speed of a script
> is wise, but really, I don't have any such problem right now...
>
> the only thing that just crossed my mind is : what if you want to output the
> keys of an array in the same order as you created them ? so far the only
> way to do that I can think of is to maintain an extra variable in which you
> accumulate keys (as items) when you create them...
> may be it's just me, but I would expect Rev to output keys in the same
> order as they were created... that would be more handy...
If your order of creation relates to numeric sort order, the fastest
solution I can think of offhand is to get the keys, sort them
numerically, and use that list to access them.
The sort command is reasonably fast, and while there may be some benefit
to also maintaining a separate list of keys as they're created, that
option would carry its own overhead (I try to minimize copies of data
whenever possible).
>> > BTW here's a suggestion for a slight improvement of the "keys" function :
>> > get the numKeys of myArray --> outputs the keys in numeric order
>> > get the alphaKeys of myArray --> outputs the keys in alphabetic order
>>
>> Those might be handy indeed -- have you submitted those requests to BZ?
>
> haven't found the time yet...
> before I proceed, may be some list members have some better ideas
> to improve my proposition ?
The latest "What's New" documented included with the Rev install has
this tasty tidbit:
-------------------------------/
Array key iteration
~~~~~~~~~~~~~~~~~~~
A new form of the repeat command has been added:
repeat for each key tKey of tArray
...
end repeat
This form can be used as a direct replacement for:
repeat for each line tLine of the keys of tArray
...
end repeat
In cases where tArray has a large number of keys, there is a substantial
speed improvement in using the new form.
-------------------------------\
I wonder if an optimal solution might be to find a graceful way to add
the sort params as optional arguments to the repeat statement, maybe
something like:
repeat for each key tKey of tArray sorted numeric ascending
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list