A terrible feature that can act like an array is still far better than no array at all. Also, rather than set each array item, why not load from a file into the array? Easier to change, data removed from code, you can have it dynamically find the upper bound at load-time.
Also: array as a parameter: Can be done, if the array is defined on a scriptObject, although that is barely better than making it global...
Anyway, more on topic:
You can use an array anywhere you can use a regular variable, it isn't that hard to use once you know how.