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

JavaScriptのターゲットよりわずかに少ないサブ配列の製品


問題

最初の引数として数値の配列arrを取り、2番目の引数として数値のtargetを受け取るJavaScript関数を作成する必要があります。

この関数は、サブアレイ内のすべての要素の積がターゲットよりも少ない(連続した)サブアレイの数をカウントして返すことになっています。

たとえば、関数への入力が

入力

const arr = [10, 5, 2, 6];
const target = 100;

出力

const output = 8;

出力の説明

積が100未満の8つのサブアレイは-

[10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6].

100の積は厳密にk以上であるため、[10、5、2]は含まれないことに注意してください。

以下はコードです-

const arr = [10, 5, 2, 6];
const target = 100;
const countSubarrays = (arr = [], target = 1) => {
   let product = 1
   let left = 0
   let count = 0
   for (let right = 0; right < arr.length; right++) {
      product *= arr[right]
      while (left <= right && product >= target) {
         product /= arr[left]
         left += 1
      }
      count += right - left + 1
   }
   return count
};
console.log(countSubarrays(arr, target));

出力

8

  1. JavaScriptのObject.assign()?

    Object.assign() このメソッドは、1つ以上のソースオブジェクトをターゲットオブジェクトにコピーするために使用されます。 ソースで「get」とターゲットで「Set」の両方を使用するため、ゲッターとセッターを呼び出します。ターゲットオブジェクトからコピーされたプロパティと値を持つターゲットオブジェクトを返します。このメソッドは、nullまたは未定義のソース値をスローしません。 構文 Object.assign(target, ...source objects); ソースオブジェクトが必要です およびターゲットオブジェクトをパラメータとして、ソースオブジェクトをターゲットオブジェク

  2. JavaScriptのnew.target

    new.targetは、関数コンストラクターがnewキーワードを使用して呼び出されたかどうかを実行時に判別できるようにするメタプロパティです。 以下は、JavaScriptのnew.targetのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=