验证 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)
      };
   };
   return lens.size === 2;
};
console.log(validSquare(c1, c2, c3, c4));

输出

在控制台中输出将为 −

true

更新于: 2021-02-26

128 次浏览

开启你的 职业生涯

完成教程即可获得认证

开始
广告
© . All rights reserved.