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

ターゲット番号に到達するための順列を作成しますが、提供された番号を再利用しますJavaScript


最初の引数として数値の配列を取り、2番目の引数としてターゲットの合計数値を受け取るJavaScript関数を作成する必要があります。

この関数は、元の配列からこれらすべてのサブ配列の配列を返す必要があります。この配列の要素の合計は、ターゲットの合計になります。 1つの数値を2回使用して、合計を算出できます。

例-

入力配列と数値が-

の場合
const arr = [1, 2, 4];
const sum = 4;

その場合、出力は-

になります。
const output = [
   [1, 1, 1, 1],
   [1, 1, 2],
   [2, 2],
   [4]
]

const arr = [1, 2, 4];
const sum = 4;
const getCombinations = (arr = [], sum) => {
   const result = [];
   const pushElement = (i, t) => {
      const s = t.reduce(function (a, b) {
      return a + b;
      }, 0);
      if (sum === s) {
         result.push(t);
         return;
      };
      if (s > sum || i === arr.length) {
         return;
      };
      pushElement(i, t.concat([arr[i]]));
      pushElement(i + 1, t);
   }
   pushElement(0, []);
   return result;
};
console.log(getCombinations(arr, sum));

出力

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

になります
[ [ 1, 1, 1, 1 ], [ 1, 1, 2 ], [ 2, 2 ], [ 4 ] ]

  1. 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=

  2. JavaScriptを使用して範囲内の数で割り切れる数の数を見つける

    問題 最初の引数として2つの整数の範囲を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。 この関数は、指定された範囲内の入力数値で割り切れるすべての数値を見つけて、それらのカウントを返す必要があります。 例 以下はコードです- const range = [6, 57]; const num = 3; const findDivisibleCount = (num = 1, [l, h]) => {    let count = 0;    for(let i = l; i <= h; i++){