Если задача звучит именно так, то она сводится к нахождению угла между векторами (см. скалярное произведение векторов):
const getScalarProduct = ([xA, ...restA], [xB, ...restB]) => 
   (restA.length === 0 || restB.length === 0)
      ? xA * xB
      : xA * xB + getScalarProduct(restA, restB)
  
const getSquareModule = ([x, ...rest]) =>
   (rest.length === 0)
      ? x * x
      : x * x + getSquareModule(rest)
const getModule = (A) => Math.sqrt(getSquareModule(A))
  
const getCosOfAngle = (A, B) => getScalarProduct(A, B) / (getModule(A) * getModule(B))
getCosOfAngle([1, 0],[0, 1]) - двумерный случай, но можно находить угол для любой размерности
P.S.: код на 
JavaScript, функция 
getCosOfAngle возвращает косинус угла