CoffeeScript-内包表記

前の章では、CoffeeScriptによって提供されるさまざまなループを学びました。 whileおよびそのバリアント。それらに加えて、CoffeeScriptはとして知られている追加のループ構造を提供しますcomprehensions

これらの内包表記は、 forオプションのガード句と現在の配列インデックスの値を明示的に追加すると、他のプログラミング言語でループします。内包表記を使用すると、オブジェクトだけでなく配列も反復処理でき、配列を反復処理する内包表記は式であり、関数で返すか、変数に割り当てることができます。

S.No. ステートメントと説明
1 for ..内包表記

ザ・ for..in 理解は、これを使用してリストまたは配列の要素を反復できるCoffeeScriptの理解の基本的な形式です。

2 内包表記

配列と同じように、CoffeeScriptScriptは、オブジェクトと呼ばれるキーと値のペアを格納するためのコンテナーを提供します。を使用してオブジェクトを反復できますfor..of CoffeeScriptによって提供される内包表記。

3 list comprehensions

ザ・ list CoffeeScriptの内包表記は、オブジェクトの配列を別の配列にマップするために使用されます。

理解のインデックス

要素のリスト/配列には、内包表記で使用できるインデックスがあります。以下に示す変数を使用して、内包表記で使用できます。

for student,i in [element1, element2, element3]

次の例は、インデックスの使用法を示しています。 for…inCoffeeScriptの理解。このコードを名前の付いたファイルに保存しますfor_in_index.coffee

for student,i in ['Ram', 'Mohammed', 'John']
   console.log "The name of the student with id "+i+" is: "+student

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

c:\> coffee -c for_in_index.coffee

コンパイルすると、次のJavaScriptが表示されます。

// Generated by CoffeeScript 1.10.0
(function() {
  var i, j, len, ref, student;

  ref = ['Ram', 'Mohammed', 'John'];
  for (i = j = 0, len = ref.length; j < len; i = ++j) {
    student = ref[i];
    console.log("The name of the student with id " + i + " is: " + student);
  }
}).call(this);

今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。

c:\> coffee for_in_index.coffee

実行すると、CoffeeScriptファイルは次の出力を生成します。

The name of the student with id 0 is: Ram
The name of the student with id 1 is: Mohammed
The name of the student with id 2 is: John

内包表記の接尾辞形式

接尾辞のように if そして unless、CoffeeScriptは、コードの記述時に便利な内包表記の接尾辞形式を提供します。これを使用して、for..in 以下に示すように、1行で理解できます。

#Postfix for..in comprehension
console.log student for student in ['Ram', 'Mohammed', 'John']

#postfix for..of comprehension
console.log key+"::"+value for key,value of { name: "Mohammed", age: 24, phone: 9848022338}
例を示す

変数への割り当て

配列を反復するために使用する内包表記は、変数に割り当てたり、関数から返すこともできます。

以下の例を考えてみましょう。ここでは、を使用して配列の要素を取得したことがわかります。for..in 理解し、これをという名前の変数に割り当てました names。また、を使用して明示的に理解を返す関数もあります。returnキーワード。このコードを名前の付いたファイルに保存しますexample.coffee

my_function =->
   student = ['Ram', 'Mohammed', 'John']
   
   #Assigning comprehension to a variable
   names = (x for x in student )
   console.log "The contents of the variable names are ::"+names
   
   #Returning the comprehension
   return x for x in student
console.log "The value returned by the function is "+my_function()

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

c:\> coffee -c example.coffee

コンパイルすると、次のJavaScriptが表示されます。

// Generated by CoffeeScript 1.10.0
(function() {
  var my_function;

  my_function = function() {
    var i, len, names, student, x;
    student = ['Ram', 'Mohammed', 'John'];
    names = (function() {
      var i, len, results;
      results = [];
      for (i = 0, len = student.length; i < len; i++) {
        x = student[i];
        results.push(x);
      }
      return results;
    })();
    console.log("The contents of the variable names are ::" + names);
    for (i = 0, len = student.length; i < len; i++) {
      x = student[i];
      return x;
    }
  };

  console.log("The value returned by the function is " + my_function());

}).call(this);

今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。

c:\> coffee example.coffee

実行すると、CoffeeScriptファイルは次の出力を生成します。

The contents of the variable names are ::Ram,Mohammed,John
The value returned by the function is Ram

byキーワード

CoffeeScriptは、要素のリストを定義するための範囲を提供します。たとえば、範囲[1..10]は[1、2、3、4、5、6、7、8、9、10]と同等です。ここで、すべての要素は1ずつ増分されます。この増分を変更することもできます。を使用してby 内包表記のキーワード。

次の例は、 by のキーワード for..inCoffeeScriptによって提供される理解。このコードを名前の付いたファイルに保存しますby_keyword_example.coffee

array = (num for num in [1..10] by 2)
console.log array

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

c:\> coffee -c by_keyword_example.coffee

コンパイルすると、次のJavaScriptが表示されます。

// Generated by CoffeeScript 1.10.0
(function() {
  var array, num;

  array = (function() {
    var i, results;
    results = [];
    for (num = i = 1; i <= 10; num = i += 2) {
      results.push(num);
    }
    return results;
  })();

  console.log(array);

}).call(this);

今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。

c:\> coffee by_keyword_example.coffee

実行すると、CoffeeScriptファイルは次の出力を生成します。

[ 1, 3, 5, 7, 9 ]