驗證 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 次瀏覽

開啟你的 職業生涯

完成教程即可獲得認證

開始
廣告