はじめに
この実験では、特定の条件が満たされるまで、関数で生成された値で配列を初期化して埋めるという概念を探ります。initializeArrayUntil 関数を使用します。この関数には conditionFn と mapFn の 2 つの引数があります。この実験を通じて、この関数を使ってカスタム値と条件で配列を生成する方法を深く理解することができます。
条件が満たされるまで配列を初期化する方法
コーディングの練習を始めるには、ターミナル/SSH を開いて node と入力します。
関数で生成された値で配列を初期化して埋める手順は以下の通りです。
- 空の配列
arr、インデックス変数i、要素elを作成します。 conditionFn関数が与えられたインデックスiと要素elに対してtrueを返すまで、mapFn関数を使って配列に要素を追加するためにdo...whileループを使用します。conditionFn関数には 3 つの引数があります。現在のインデックス、前の要素、配列自体。mapFn関数には 3 つの引数があります。現在のインデックス、現在の要素、配列自体。
コードは以下の通りです。
const initializeArrayUntil = (conditionFn, mapFn) => {
const arr = [];
let i = 0;
let el = undefined;
do {
el = mapFn(i, el, arr);
arr.push(el);
i++;
} while (!conditionFn(i, el, arr));
return arr;
};
initializeArrayUntil 関数を使用するには、2 つの関数を引数として渡します。
initializeArrayUntil(
(i, val) => val > 10, //conditionFn
(i, val, arr) => (i <= 1 ? 1 : val + arr[i - 2]) //mapFn
); // [1, 1, 2, 3, 5, 8, 13]
このコードは、10 を超える最初の数までのフィボナッチ数列で配列を初期化します。conditionFn 関数は現在の値が 10 を超えるかどうかをチェックし、mapFn 関数は数列の次の数を生成します。
まとめ
おめでとうございます!「条件が満たされるまで配列を初期化する」実験を完了しました。技術力を向上させるために、LabEx でさらに実験を行って練習してください。