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

重複する時間のチェックJavaScript


一連の間隔(このような開始時間と終了時間-

)を受け取るJavaScript関数を作成する必要があります
const arr = [
   { start: '01:00', end: '04:00' },
   { start: '05:00', end: '08:00' },
   { start: '07:00', end: '11:00' },
   { start: '09:30', end: '18:00' },
];

この関数は、このオブジェクトの配列を反復処理し、配列のすべての要素を他の要素と照合する必要があります。

重複する間隔が見つかった場合、反復は停止し、trueが返されます。それ以外の場合はfalseです。重複する間隔とは、共通の時間がある時間間隔を意味します。

const arr = [
   { start: '01:00', end: '04:00' },
   { start: '05:00', end: '08:00' },
   { start: '07:00', end: '11:00' },
   { start: '09:30', end: '18:00' },
];
const overlapping = (a, b) => {
   const getMinutes = s => {
      const p = s.split(':').map(Number);
      return p[0] * 60 + p[1];
   };
   return getMinutes(a.end) > getMinutes(b.start) && getMinutes(b.end) > getMinutes(a.start);
};
const isOverlapping = (arr) => {
   let i, j;
   for (i = 0; i < arr.length - 1; i++) {
       for (j = i + 1; j < arr.length; j++) {
         if (overlapping(arr[i], arr[j])) {
            return true;
         }
      };
   };
   return false;
};
console.log(isOverlapping(arr));

出力

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

になります
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; 出力の説明