เราจำเป็นต้องเขียนฟังก์ชัน 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