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

JavaScriptで配列内の可能なAPを数える


等差数列

等差数列(AP)は、2つの連続する数値の差が一定値(別名共通の差)になるような数列です。

たとえば、1、2、3、4、5、6、…はAPであり、共通の差は1(2 -1)です。

問題

整数の配列arrを最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。

この関数のタスクは、そのリストから可能なサイズ3の等差数列の数を返すことです。各進行において、要素間の違いは同じでなければなりません。入力配列は昇順でソートされることが保証されています。たとえば、関数への入力が

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

の場合

入力

const arr = [1, 2, 3, 5, 7, 9];

出力

const output = 5;

出力の説明

必要なAPは-

であるため
[1, 2, 3], [1, 3, 5], [1, 5, 9], [3, 5, 7] and [5, 7, 9]

以下はコードです-

const arr = [1, 2, 3, 5, 7, 9];
const countAP = (arr = []) => {
   let i, j, k;
   let { length: len } = arr;
   let count = 0;
   for (i = 0; i < len - 2; i++){
      for (k = i + 2; k < len; k++){
         let temp = arr[i] + arr[k];
         let div = temp / 2;
         if ((div * 2) == temp){
            for (j = i + 1; j < k; j++){
               if (arr[j] == div){
                  count += 1;
               }
            }
         }
      }
   }
   return count;
};
console.log(countAP(arr));

出力

5

  1. JavaScriptの配列slice()

    JavaScript配列slice()メソッドは、選択したアイテムの新しい配列をより大きな配列で返します。元のアレイは変更されません。 以下は、配列slice()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&

  2. JavaScriptの配列shift()

    JavaScript配列shift()関数は、配列から最初の要素を削除します- 以下は、配列shift()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</