はじめに
この実験では、特定の条件が満たされている間、関数で生成された値で配列を初期化して埋めるという概念を探ります。条件関数とマッピング関数の 2 つの関数を引数とする initializeArrayWhile 関数を使用します。この実験は、特定の条件とマッピング関数に基づいてカスタマイズされた配列を作成する方法を理解するのに役立ちます。
JavaScript で while ループを使って配列を初期化して埋める方法
JavaScript でコーディングを練習するには、ターミナル/SSH を開いて node と入力します。
initializeArrayWhile 関数は、条件が満たされている間、関数で生成された値で配列を初期化して埋めます。以下がその動作方法です。
arrという空の配列、iというインデックス変数、elという要素を作成します。conditionFn関数が与えられたインデックスiと要素elに対してtrueを返す限り、whileループを使ってmapFn関数を使って配列に要素を追加します。conditionFn関数は 3 つの引数を取ります。現在のインデックス、前の要素、配列自体。mapFn関数は 3 つの引数を取ります。現在のインデックス、現在の要素、配列自体。initializeArrayWhile関数は配列を返します。
以下がコードです。
const initializeArrayWhile = (conditionFn, mapFn) => {
const arr = [];
let i = 0;
let el = mapFn(i, undefined, arr);
while (conditionFn(i, el, arr)) {
arr.push(el);
i++;
el = mapFn(i, el, arr);
}
return arr;
};
initializeArrayWhile 関数を使って配列を初期化して値で埋めることができます。たとえば:
initializeArrayWhile(
(i, val) => val < 10,
(i, val, arr) => (i <= 1 ? 1 : val + arr[i - 2])
); // [1, 1, 2, 3, 5, 8]
まとめ
おめでとうございます!「配列を初期化しながら」の実験を完了しました。技術力を向上させるために、LabEx でさらに実験を練習してください。