JavaScript における展開関数

JavaScriptJavaScriptBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、JavaScript の unfold() 関数を調べます。この関数を使うと、初期の種値を使ってイテレータ関数を繰り返し呼び出して配列を作成できます。関数が false を返すまで続けます。この実験を通じて、unfold() 関数の使い方と、特定のプログラミングタスクを簡略化するためにどのように使えるかを学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") subgraph Lab Skills javascript/variables -.-> lab-28679{{"JavaScript における展開関数"}} javascript/data_types -.-> lab-28679{{"JavaScript における展開関数"}} javascript/arith_ops -.-> lab-28679{{"JavaScript における展開関数"}} javascript/comp_ops -.-> lab-28679{{"JavaScript における展開関数"}} javascript/loops -.-> lab-28679{{"JavaScript における展開関数"}} javascript/array_methods -.-> lab-28679{{"JavaScript における展開関数"}} end

配列を展開する

イテレータ関数と初期の種値を使って配列を作成するには、次の手順に従います。

  1. ターミナル/SSH を開き、コーディングを練習するために node と入力します。
  2. while ループと Array.prototype.push() を使って、イテレータ関数を false を返すまで繰り返し呼び出します。
  3. イテレータ関数は 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 でさらに多くの実験を行って練習してください。