CoffeeScript - Zrozumienia

W poprzednim rozdziale poznaliśmy różne pętle dostarczane przez CoffeeScript, whilei jego warianty. Oprócz tego CoffeeScript udostępnia dodatkowe struktury pętli znane jakocomprehensions.

Te pojęcia zastępują rozszerzenie forpętli w innych językach programowania, jeśli jawnie dodamy opcjonalne klauzule guard i wartość bieżącego indeksu tablicy. Używając wyrażeń, możemy iterować tablice, a także obiekty i wyrażenia, które iterują tablice, są wyrażeniami i możemy je zwrócić w funkcji lub przypisać do zmiennej.

S.No. Oświadczenie i opis
1 za… w zrozumieniu

Plik for..in zrozumienie jest podstawową formą rozumienia w CoffeeScript. Dzięki temu możemy iterować elementy listy lub tablicy.

2 dla… zrozumienia

Podobnie jak Arrays, CoffeeScriptScript udostępnia kontenery do przechowywania par klucz-wartość zwanych obiektami. Możemy iterować obiekty za pomocąfor..of zrozumienia dostarczane przez CoffeeScript.

3 list comprehensions

Plik list wyrażenia w CoffeeScript służą do mapowania tablicy obiektów na inną tablicę.

Indeks zrozumień

Lista / tablica elementów ma indeks, który może być używany w zrozumieniach. Możesz go używać w zrozumieniach przy użyciu zmiennej, jak pokazano poniżej.

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

Przykład

Poniższy przykład ilustruje użycie indeksu for…inzrozumienie w CoffeeScript. Zapisz ten kod w pliku o nazwiefor_in_index.coffee

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

Otworzyć command prompt i skompiluj plik .coffee, jak pokazano poniżej.

c:\> coffee -c for_in_index.coffee

Podczas kompilacji daje następujący 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);

Teraz otwórz command prompt ponownie i uruchom plik CoffeeScript, jak pokazano poniżej.

c:\> coffee for_in_index.coffee

Podczas wykonywania plik CoffeeScript generuje następujące dane wyjściowe.

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

Postfixowa forma rozumień

Podobnie jak postfix if i unless, CoffeeScript zapewnia postfiksową postać Compression, która jest przydatna podczas pisania kodu. Korzystając z tego, możemy napisać plikfor..in zrozumienie w jednym wierszu, jak pokazano poniżej.

#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}
pokaż przykład

Przypisywanie do zmiennej

Zrozumienie, którego używamy do iteracji tablic, może być przypisane do zmiennej, a także zwrócone przez funkcję.

Przykład

Rozważmy przykład podany poniżej. Tutaj możesz zauważyć, że pobraliśmy elementy tablicy przy użyciufor..in zrozumienie i przypisać to zmiennej o nazwie names. Mamy też funkcję, która zwraca wyrażenie jawnie przy użyciureturnsłowo kluczowe. Zapisz ten kod w pliku o nazwieexample.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()

Otworzyć command prompt i skompiluj plik .coffee, jak pokazano poniżej.

c:\> coffee -c example.coffee

Podczas kompilacji daje następujący 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);

Teraz otwórz command prompt ponownie i uruchom plik CoffeeScript, jak pokazano poniżej.

c:\> coffee example.coffee

Podczas wykonywania plik CoffeeScript generuje następujące dane wyjściowe.

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

Słowo kluczowe według

CoffeeScript udostępnia zakresy do definiowania listy elementów. Na przykład zakres [1..10] jest równoważny z [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], gdzie każdy element jest zwiększany o 1. Możemy również zmienić ten przyrost używającby słowo kluczowe ze zrozumieniem.

Przykład

Poniższy przykład ilustruje użycie by słowo kluczowe for..inzrozumienie dostarczane przez CoffeeScript. Zapisz ten kod w pliku o nazwieby_keyword_example.coffee

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

Otworzyć command prompt i skompiluj plik .coffee, jak pokazano poniżej.

c:\> coffee -c by_keyword_example.coffee

Podczas kompilacji daje następujący 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);

Teraz otwórz command prompt ponownie i uruchom plik CoffeeScript, jak pokazano poniżej.

c:\> coffee by_keyword_example.coffee

Podczas wykonywania plik CoffeeScript generuje następujące dane wyjściowe.

[ 1, 3, 5, 7, 9 ]