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

JavaScriptの配列から可能なすべての組み合わせを見つける


最初の引数として数値の配列を取り、2番目の引数としてターゲットの合計を受け取るJavaScript関数を作成する必要があります。関数は、そのようなすべての要素の配列(繰り返しまたは非繰り返し)から配列を作成し、合計してtargetsumになる必要があります。

例-入力配列が-

の場合
const arr = [2, 3, 6, 7], sum = 7;

したがって、上記の入力の出力は次のようになります-

const output = [
   [2, 2, 3],
   [7]
];

このためのコードは-

になります
const arr = [2, 3, 6, 7], sum = 7;
const combineElements = (arr, sum) => {
   const output = [];
   const findCombination = (remain, path, start) => {
      if (remain < 0) {
         return;
      }
      if (remain === 0) {
         output.push([...path]);
         return;
      }
      for (let i = start; i < arr.length; i++) {
         findCombination(remain − arr[i], [...path, arr[i]], i);
      }
   }
   findCombination(sum, [], 0);
   return output;
};
console.log(combineElements(arr, sum));

出力

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

になります
[ [ 2, 2, 3 ], [ 7 ] ]

  1. JavaScript配列from()メソッド

    JavaScriptのfrom()メソッドは、lengthプロパティを持つ任意のオブジェクトまたは反復可能なオブジェクトからArrayオブジェクトを返すために使用されます。 構文は次のとおりです- Array.from(obj, mapFunction, val) 上記では、パラメータobjは配列に変換するオブジェクト、mapFunctionは呼び出すマップ関数、valはmapFunctionを実行するときにこれとして使用する値です。 JavaScriptでfrom()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body

  2. JavaScript Array.from()メソッド

    Array.from()は、指定された配列インスタンスから新しい配列オブジェクトを作成します。 以下は、配列from()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docume