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

JavaScriptで特定の合計を取得する方法


問題

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

配列内の整数ごとに、関数は「+」または「-」を割り当てることができます。

この関数は、配列の整数の合計をターゲットの合計であるtargetに等しくするために、「+」、「-」を割り当てる方法が合計でいくつあるかを調べる必要があります。

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

の場合
const arr = [1, 1, 1, 1, 1];
const target = 3;

その場合、出力は-

になります。
const output = 5;

出力の説明:

5つの方法が-

だから
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

このためのコードは-

になります
const arr = [1, 1, 1, 1, 1];
const target = 3;
const waysToSum = (arr = [], target = 1) => {
   const map = {};
   const find = (arr, target, i) => {
      let val = i + '->' + target;
      if(map[val] !== undefined){
         return map[val];
      };
      if(i === 0){
         if (target === 0 && arr[0] === 0) { return 2 }
         return arr[0] === target || arr[0] === -target ? 1 : 0
      };
      map[val] = find(arr, target + arr[i], i - 1) + find(arr, target - arr[i], i - 1);
      return map[val]
   };
   return find(arr, target, arr.length-1)
};
console.log(waysToSum(arr, target));

出力

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

になります
5

  1. JavaScriptで配列を空にする方法の数

    JavaScriptで配列を空にするには、4つの方法があります- 新しいアレイへの設定 −これでは、配列変数を新しい空の配列に設定します。 長さプロパティの使用 −これでは、配列の長さプロパティを0に設定します。 ポップの使用 −これでは、長さが0に達するまで配列要素を連続的にポップします。 スプライスの使用 −ここでは、開始インデックスを0とし、削除する要素の数をarray.length-1とします。 以下は、noを表示するコードです。 JavaScriptで配列を空にする方法の例- 例 <!DOCTYPE html> <html lang="en"

  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=