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

JavaScriptの配列で必要な合計を持つ3つの要素を見つける


最初の引数として数値の配列を取り、2番目の引数として単一の数値を受け取るJavaScript関数を作成する必要があります。次に、関数は、配列からそのような3つの数値(存在する場合)を選択する必要があります。その合計は、2番目の引数で指定された数値と等しくなります。

関数は最終的に、そのようなすべてのトリプレットの配列の配列を返す必要があります。存在する場合は空の配列を返します。

例-

入力配列と数値が-

の場合
const arr = [2, 5, 7, 8, 9, 11, 1, 6];
const sum = 22;

その場合、出力は-

になります。
const output = [ [ 2, 9, 11 ], [ 5, 6, 11 ], [ 5, 8, 9 ], [ 6, 7, 9 ] ];

このためのコードは-

になります
const arr = [2, 5, 7, 8, 9, 11, 1, 6];
const sum = 22;
const threeSum = (arr = [], sum) => {
   arr.sort((a,b) => a - b);
   const res = [];
   for(let i=0; i < arr.length - 2; i++){
      if(arr[i] != arr[i-1]){
         let left = i + 1;
         let right = arr.length - 1;
         while (left < right){
            const curr = arr[i] + arr[left] + arr[right];
            if (curr === sum){
               res.push([arr[i], arr[left], arr[right]]);
               while(arr[left] == arr[left + 1]) left ++
               while(arr[right] == arr[right - 1]) right -- // making sure
               our solution set does not contain duplicate res
               left ++;
               right --;
            } else if(curr < sum) {
               left ++
            } else if(curr > sum){
               right --
            };
         };
      };
   };
   return res
};
console.log(threeSum(arr, sum));

出力

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

になります
[ [ 2, 9, 11 ], [ 5, 6, 11 ], [ 5, 8, 9 ], [ 6, 7, 9 ] ]

  1. JavaScriptで配列内の要素の目的の合計を見つける

    このような数値の配列があるとします- const arr = [1, 2, 1, 3, 2]; 最初の引数としてそのような配列を1つ受け取るJavaScript関数を作成する必要があります。 2番目の引数は、目的の合計を表す数値になります。これを合計と呼びます。3番目と最後の引数も、配列から目的の合計を合計する必要がある数値の数を表す数値になります(要素の繰り返し)、この番号をnumと呼びましょう。 関数は最終的に、目的の合計と長さを持つそのようなすべてのグループの数を返す必要があります。 したがって、入力値が-の場合 const arr = [1, 2, 1, 3, 2]; const

  2. JavaScriptでreduce()を使用して配列要素の積を検索する

    問題 配列arrを取り込むJavaScript関数を作成する必要があります。この関数は、配列のすべての要素の積を見つけて返す必要があります。 例 以下はコードです- const arr = [3, 1, 4, 1, 2, -2, -1]; const produceElements = (arr = []) => {    const res = arr.reduce((acc, val) => {       acc = acc * val;       return acc;   &n