phil.o
array1=(0,0,0);
array2=(1,1,1);
Это не то, как вы объявляете массивы в javascript.
массивы JavaScript[
^]
function eucDist (array1, array2)
Вы никогда не используете
array1
и
array2
параметры внутри функции.
for(i=0, i=3, i++)
Это объявление синтаксиса цикла for неверно.
JavaScript для цикла[
^]
Более того, поскольку тело цикла пусто, оно бесполезно.
return distance
Math.sqrt(Math.pow(x2 - x1, 2) +
Math.pow(y2 - y1, 2) * 1.0);
Как указано в решении 1, это приведет к синтаксической ошибке.
Более того, это формула для вычисления евклидова расстояния в двумерном пространстве, тогда как ваши исходные массивы предполагают, что вы имеете дело с координатами в трехмерном пространстве.
Кроме того, умножение любого значения на 1 бесполезно и может быть упрощено путем полного удаления умножения.
Наконец, часто более эффективно, с точки зрения производительности, возводить число в квадрат, умножая его на себя, а не используя
Math.pow()
функция.
console.log(array1(0,1,3),array2(4,5,6));
Это не вызовет
eucDist
функция.
Я бы посоветовал в первую очередь вычислить разницу между обеими координатами, измерение за измерением, а затем использовать эти дельты для вычисления расстояния:
function eucDist(lhs, rhs)
{
let deltaX = rhs[0] - lhs[0];
let deltaY = rhs[1] - lhs[1];
let deltaZ = rhs[2] - lhs[2];
return Math.sqrt
(
deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ
);
}