Array issue

I am trying to finish of my leveling scrip and each time you level it adds damage to your gun so you can do more damage. I have created an array of gameobjects to hold your guns but the problem is when you level its only adding it to one of the items in the array not all of them.

Here is my script:

public GameObject[] guns;

private Gun gunD;

void Start () 
	{
         gunD = gun.GetComponent<Gun>();

        }

void Update () 
	{

        }
if(curLevel < lvl.Length && curExperience >= lvl[curLevel-1])//This check is our curent lvl is less then the max length if it is it checks if our experance is greater then cur lvls experince.
		{
				for (var i=0; i < guns.Length; i++)
					{
				  gunD.Damage += gunDamage[curLevel-1];//Add the amount damage specified to the damage the gun does.
					
					}
					
				  
		}

You are only adding damage to gunD in your for loop. Should be like this to loop through the guns:

for (var i=0; i < guns.Length; i++)
{
    guns*.Damage += gunDamage[curLevel-1];*

}