Player attacks once but the enemy takes double damages!

Player attacks once but the enemy takes double damages, sometimes the i=0, sometimes the i=1, it’s very strange:

//Player Attack Method
void Attack()
{
    if (Input.GetButtonDown("Attack"))
    {
        myAnimator.SetTrigger("Attack");
        Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPos.position, attackRange, whatIsEnemies);
        for (int i = 0; i < enemiesToDamage.Length; i++)
        {
            Debug.Log("i = " + i.ToString());
            enemiesToDamage*.GetComponent<Enemy>().TakeDamage(damage);*

enemiesToDamage*.GetComponent().GetComponent().color = Color.red;*
}
}
}

//Enemy Take Damage
public void TakeDamage(int damage)
{
dazedTime = startDazedTime;
health -= damage;
Debug.Log(“damage TAKEN !”);
}

Put a bool value like tookDamage.

 if (Input.GetButtonDown("Attack"))
     { 
     tookDamage = false;
    ...

and then set true in the TakeDamage method.

//Enemy Take Damage 
     public void TakeDamage(int damage)
     {
    if(!tookDamage){
         tookDamage = true
         dazedTime = startDazedTime;
         health -= damage;
         Debug.Log("damage TAKEN !");
     }
    }