Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ตรวจสอบสี่เหลี่ยมจัตุรัสในระนาบ 2 มิติใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่มีสี่อาร์กิวเมนต์ อาร์กิวเมนต์ทั้งสี่จะเป็นอาร์เรย์ของตัวเลขสองตัวที่แทนพิกัดของจุดยอดสี่จุดของรูปสี่เหลี่ยมหรือตัวเลขใดๆ (ปิดหรือเปิด) บนระนาบ

หน้าที่ของเราคือตรวจสอบว่าจุดยอดทั้งสี่เป็นรูปสี่เหลี่ยมจัตุรัสหรือไม่

หากเป็นรูปสี่เหลี่ยมจัตุรัส เราควรคืนค่า จริง เท็จ มิฉะนั้น

ตัวอย่างเช่น −

หากพิกัดอินพุตเป็น −

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