はじめに
この実験では、JavaScript の unfold() 関数を調べます。この関数を使うと、初期の種値を使ってイテレータ関数を繰り返し呼び出して配列を作成できます。関数が false を返すまで続けます。この実験を通じて、unfold() 関数の使い方と、特定のプログラミングタスクを簡略化するためにどのように使えるかを学びます。
配列を展開する
イテレータ関数と初期の種値を使って配列を作成するには、次の手順に従います。
- ターミナル/SSH を開き、コーディングを練習するために
nodeと入力します。 whileループとArray.prototype.push()を使って、イテレータ関数をfalseを返すまで繰り返し呼び出します。- イテレータ関数は 1 つの引数 (
seed) を受け取り、常に 2 つの要素を持つ配列 ([value,nextSeed]) または終了するためのfalseを返す必要があります。
unfold 関数を実装するには、次のコードを使います。
const unfold = (fn, seed) => {
let result = [],
val = [null, seed];
while ((val = fn(val[1]))) result.push(val[0]);
return result;
};
ここでは、unfold 関数を使う方法の例を示します。
var f = (n) => (n > 50 ? false : [-n, n + 10]);
unfold(f, 10); // [-10, -20, -30, -40, -50]
これにより、初期の種値 10 から始まるイテレータ関数 f によって生成される値を持つ配列が生成されます。イテレータ関数は各ステップで 2 つの要素を持つ配列を生成します。現在の種値の否定と、10 だけ増加する次の種値です。種値が 50 を超えるまでこのプロセスが続き、その時点で関数は false を返します。
まとめ
おめでとうございます!「配列を展開する」実験を完了しました。技術力を向上させるために、LabEx でさらに多くの実験を行って練習してください。