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