Which is better: global arrays or object properties?

The game I’m currently working on involves character swapping, with each character having different values for jump height, running speed, action frames, etc. The question is, how should I organize those variables?
I could use a global array (g.jump = [4,3,6]). That way i could easily change all values at once if need be, and also have one central area for all essential numbers (the init script). But then it’s harder to keep track of everything.
I could also use object properties (own.jump = 4). That way I would have less global variables to get confused with, as well as easily being able to change a whole character individually. But it’s a pain to copy properties from one character to a new one, especially when there’s a lot of them (20+).
So the question is, which method is better?

the anwser would be what takes the shortest time to implement and gives you the most freedom to make changes… mix them together… don’t bother sticking to doing something in only one way… I think (not sure here) having more global variables is slower (but you just gotta use them for the sake of organisation)… what ever you do it’s going to be a lot of hard repetive work… so make something that works well for you and how you like to organise your game info

If you use a global array, use a dictionary. It searches much faster and everything is in one place.
GameLogic.players = {“player1”:[1,2,3],“player2”:[5,8,9]}

jump = GameLogic.players[“player1”][0]
#get the first value of player1
You could just put lists in a larger list, but dictionary keys make your code more readable. If you’re doing much changing of values that you would have to get the object for, it would be a lot faster to use a global. If you make the key names the same as the object name, it would be just as easy to code. However, if you add and delete players, something like that might be better left as object properties, unless you write a function that does both.