在JavaScript中验证二维平面中的正方形

我们需要编写一个包含四个参数的JavaScript函数。这四个自变量全部是正好两个数字的数组,分别代表一个平面上四边形或任何图形(闭合或未闭合)的四个顶点的坐标。

我们函数的任务是确定四个顶点是否形成正方形。

如果它们确实形成一个正方形,则应返回true,否则返回false。

例如-

如果输入坐标为-

const c1 = [1, 0];
const c2 = [-1, 0];
const c3 = [0, 1];
const c4 = [0, -1];

那么输出应该是-

const output = true;

因为这些坐标确实形成了一个面积为4个单位平方的正方形。

示例

为此的代码将是-

const c1 = [1, 0];
const c2 = [-1, 0];
const c3 = [0, 1];
const c4 = [0, -1];
const validSquare = (c1, c2, c3, c4) => {
   const dist = (c1, c2) => (Math.sqrt(Math.pow(c1[0] - c2[0],2) + Math.pow(c1[1] - c2[1],2)));
   const points = [c1,c2,c3,c4];
   let lens = new Set();
   for(let i = 0; i < points.length; i++){
      for(let j = i + 1; j < points.length; j++){
         if(points[i][0] == points[j][0] && points[i][1] == points[j][1]){
            return false;
         };
         let dis = dist(points[i],points[j]);
         lens.add(dis)
      };
   };
   returnlens.size=== 2;
};
console.log(validSquare(c1, c2, c3, c4));
输出结果

控制台中的输出将是-

true