When using find to search through a string or array currently the found element has to be removed/renamed to be able to find following occurences:
indices = []; bla = [5,6,7,5]; _f = bla find 5; while {_f > -1} do { indices pushBack _f; bla set [_f, "removed"]; _f = bla find 5; }
Instead of removing/renaming the element a new find command which takes a start position for the search could be implemented (as the find command in C++).
Overloading the find command (as in C++) is not possible because both of its parameters can be an array already - new command findNext:
indices = []; bla = [5,6,7,5]; _f = bla find 5; while {_f > -1} do { indices pushBack _f; _f = bla findNext [5, _f + 1]; }