Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで直線をチェックする


配列の配列を受け取るJavaScript関数を作成する必要があります。各サブアレイには、それぞれx座標とy座標を表す2つのアイテムが含まれます。

この関数は、これらのサブ配列で指定された座標が直線を形成しているかどうかをチェックする必要があります。

例-

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

アレイには、少なくとも2つのサブアレイが含まれていることが保証されています。

このためのコードは-

になります
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));

説明

勾配が等しい場合は最初のポイントで各ポイントの勾配を決定します。それ以外の場合、ポイントの1つが異なる勾配を持っている場合、これはポイントが同じ線上にないことを意味します。

出力

そして、コンソールの出力は-

になります
true

  1. JavaScriptで同様に配列の2乗をチェックする

    問題 最初の引数と2番目の引数として、それぞれarr1とarr2の2つの数値配列を受け取るJavaScript関数を作成する必要があります。 arr2のすべての要素が、出現順序に関係なくarr1の要素の二乗である場合にのみ、関数はtrueを返す必要があります。 たとえば、関数への入力が-の場合 入力 const arr1 = [4, 1, 8, 5, 9]; const arr2 = [81, 1, 25, 16, 64]; 出力 const output = true; 例 以下はコードです- const arr1 = [4, 1, 8, 5, 9]; const arr2

  2. JavaScriptで特定のタイプのマトリックスをチェックする

    問題 最初で唯一の引数として、リテラルの2次元配列arrを受け取るJavaScript関数を作成する必要があります。 この関数は、左上から右下までのすべての対角線に同じ要素があるかどうかをチェックする必要があります。 その場合はtrueを返し、そうでない場合はfalseを返す必要があります。 たとえば、関数への入力が 入力 const arr = [    [6, 7, 8, 9],    [2, 6, 7, 8],    [1, 2, 6, 7], ]; 出力 const output = true; 出力の説明