How do I make an array of objects light up sequentially?
since the array is an exact copy of the first object, I don't think there is a way to do what I understand you wanna do. What I suggest is copying the object with array (to keep it in case), then apply the array. 

Without separating your object and materials, you can animate the light changes with a texture that, depending of the UV, will either light up or not your objects only by keyframing the texture coordinate. So UV unwrap all your cylinders from the front: 

Then you have to make a texture that looks like that:


Finally in your material, set it up a bit like that and move the X value of the mapping node to align the white part of the texture over the cylinder you want to light up:




OR you can always have multiple objects with different material that are animated independently (probably more time consuming).