How can I find closest Target?

this is my code and works in Unity how can I find closest target in playcanvas?

	GameObject FindClosestBall(string ballName) {
        GameObject[] gos;
        gos = GameObject.FindGameObjectsWithTag(ballName);
        GameObject closest = null;
        float distance = Mathf.Infinity;
        Vector3 MainBallposition = MainBall.transform.position;
        foreach (GameObject go in gos) {
            Vector3 diff = go.transform.position - MainBallposition;
            float curDistance = diff.sqrMagnitude;
            if (curDistance < distance) {
                closest = go;
                distance = curDistance;
            }
        }
        return closest;
    }

https://developer.playcanvas.com/en/api/pc.Entity.html#findByTag

works like charm :slight_smile:

NearestBall.prototype.FindClosestBall = function(){
    var closest = null;
    var distance = 10000000;
    var balls = this.app.root.findByTag("Ball");
    console.log(balls);
    for (var i = 0 ; i< balls.length ; i++) {
        var diff = balls[i].getPosition().sub(this.MainBall.getPosition());
       
        var curDistance = diff.lengthSq();
         console.log(curDistance);
        if (curDistance < distance) {
            closest = balls[i];
            distance = curDistance;
        }
    }
    return closest;
};

NearestBall.prototype.initialize = function() {
var closestTarget = this.FindClosestBall();
 console.log(closestTarget.name);
};

thanks
can you tell my how can I use forEach loop in above script?