Destroying not working

Hey I’ve been working on Zombie Island for a bit, and and trying to instantiate zombie’s, but when I try to destroy them, the script won’t work, it says that “obj” does not exist in the current context. Here is the zombie spawner script:
public GameObject spawnObject;
public float zombieLife;
void Start ()
{
StartCoroutine(Wait());
}

IEnumerator Wait()
{
	for(int i = 0; i < 100; i++)
	{
		zombieLife = 10f;
		yield return new WaitForSeconds(Random.Range(2, 5));
		GameObject obj = Instantiate(spawnObject, new Vector3(Random.Range(100f, -100f), 5, 0), Quaternion.identity);
		Debug.Log("Spawned Zombie");	
		obj.SetActive(true);	
		
	}
}
void OnTriggerEnter(Collider other)
{
	if (other.gameObject.CompareTag("Bullet"))
	{
		Destroy(obj)
	}
}

and the enemy script:
public Transform player;
private NavMeshAgent nav;
public float zombieLife;
void Start ()
{
zombieLife = 5;
nav = GetComponent();
}

void Update () 
{
	nav.SetDestination(player.position);
	this.transform.position = new Vector3 (transform.position.x, transform.position.y, 0);
}
void OnTriggerEnter(Collider other)
{
	if (other.gameObject.CompareTag("Bullet"))
	{
		zombieLife -= 1;
		if(zombieLife <= 4)
		{
			Debug.Log("Killed Zombie You Did");
			
		}
	}
}

I hope you can help!

Your GameObject called obj is local variable in Wait IEnumerator, so you can’t access it from any other place than Wait.
You can make private GameObject obj; variable and then initialize it

 ...
     obj = Instantiate(spawnObject, new Vector3(Random.Range(100f, -100f), 5, 0), Quaternion.identity);
    ...

Thanks a lot!