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 
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?