Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 2D 평면에서 정사각형 유효성 검사

<시간/>

네 개의 인수를 취하는 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