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
-
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" /&
-
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</