How do I delete the created clones?

I want to delete the clones then when it y their data member you are smaller equal -1 away.
I rehearsed so:

using System.Collections;
using System.Collections.Generic;

public class FireScriptWithCamera : MonoBehaviour {
	
	public GameObject weapon;
	private GameObject sphereCollection;
	private List<GameObject> weaponCloneList;
	
	private float power;
	private short weaponCloneNumber;
	
	// Use this for initialization
	void Start () {
		//weapon = GameObject.Find("Assets/Prefabs/SpherePrefab.prefab");
	    sphereCollection = GameObject.Find("SphereCollection");
		weaponCloneList = new List<GameObject>();
		power = 350;
		weaponCloneNumber = 0;
	}
	
	// Update is called once per frame
	void Update () {
	    if(Input.GetButtonDown("Fire1"))
		{
			weaponCloneList.Add(Instantiate(weapon, transform.position, Quaternion.identity)as GameObject);
			weaponCloneList[weaponCloneNumber].transform.parent = sphereCollection.transform;
			weaponCloneList[weaponCloneNumber].name = "SpherePrefabClone" + (weaponCloneNumber + 1);
			weaponCloneList[weaponCloneNumber].rigidbody.AddForce(new Vector3(0, 0, 1*power));
			++weaponCloneNumber;
		}
		
		
		
		while(weaponCloneNumber != 0)
		    if(weaponCloneList[weaponCloneNumber-1].transform.position.y <= -1)
			{
				DestroyObject(weaponCloneList[weaponCloneNumber-1]);
				--weaponCloneNumber;
		    } 
	}

}

List és array nélkül hogyan lehetne kivitelezni a feladatot? Segítsetek megcsinálni kérlek.
How would it be possible to carry out the task without List and array?
Help me to do please.

You will have to create another script that destroys gameObject when their position.y is less than -1.

public class Kill : MonoBehaviour {
   void Update() {
      if( transform.position.y <= 1 ) {
         Destroy(gameObject);
      }
   }
}

So, when you create a new weapon:

using System.Collections;
using System.Collections.Generic;
 
public class FireScriptWithCamera : MonoBehaviour {
 
    public GameObject weapon;
    private GameObject sphereCollection;
 
    private float power;
 
    // Use this for initialization
    void Start () {
       weapon = GameObject.Find("Assets/Prefabs/SpherePrefab.prefab");
       sphereCollection = GameObject.Find("SphereCollection");
       power = 350;
    }
 
    // Update is called once per frame
    void Update () {
        if(Input.GetButtonDown("Fire1"))
       {
         GameObject go = Instantiate(weapon, transform.position, Quaternion.identity)as GameObject);
         go.transform.parent = sphereCollection.transform;
         go.name = "SpherePrefabClone";
         go.rigidbody.AddForce(new Vector3(0, 0, 1*power));

         //Add the Kill script
         go.AddComponent<Kill>();
       }
 
}

You can keep your weapon clone number if you want it for other purposes. Since you want to do it without List/Array, I just remove all the related variables and codes from your script.

You can incorporate something like this to the Kill.cs to make it check the position every few seconds instead of re-checking the position every frame.