Computer >> Máy Tính >  >> Lập trình >> Javascript

Kiểm tra các đường thẳng trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các mảng. Mỗi mảng con sẽ chứa chính xác hai mục, đại diện cho các tọa độ x và y tương ứng.

Hàm của chúng ta nên kiểm tra xem các tọa độ được chỉ định bởi các mảng con này có tạo thành một đường thẳng hay không.

Ví dụ -

[[4, 5], [5, 6]] should return true.

Mảng được đảm bảo chứa ít nhất hai mảng con.

Ví dụ

Mã cho điều này sẽ là -

const coordinates = [
   [4, 5],
   [5, 6]
];
const checkStraightLine = (coordinates = []) => {
   if(coordinates.length === 0) return false;
   let x1 = coordinates[0][0];
   let y1 = coordinates[0][1];
   let slope1 = null;
   for(let i=1;i<coordinates.length;i++){
      let x2= coordinates[i][0];
      let y2= coordinates[i][1];
      if(x2-x1 === 0){
         return false;
      }
      if(slope1 === null){
         slope1 = (y2-y1) / (x2-x1);
         continue;
      }
      let slope2 = (y2-y1) / (x2-x1);
      if(slope2 != slope1){
         return false;
      }
   }
   return true;
};
console.log(checkStraightLine(coordinates));

Giải thích

Chúng tôi xác định độ dốc cho từng điểm với điểm đầu tiên nếu độ dốc bằng nhau thì đó là một đường thẳng, ngược lại, nếu một trong các điểm có độ dốc khác nhau, điều này có nghĩa là các điểm không nằm trên cùng một đường thẳng.

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true