CoffeeScript - Pemahaman

Di bab sebelumnya, kita telah mempelajari berbagai loop yang disediakan oleh CoffeeScript, whiledan variannya. Selain itu, CoffeeScript menyediakan struktur loop tambahan yang disebutcomprehensions.

Pemahaman ini menggantikan forloop dalam bahasa pemrograman lain, jika kita menambahkan klausa pelindung opsional dan nilai indeks array saat ini secara eksplisit. Dengan menggunakan pemahaman, kita dapat mengulang array serta objek dan pemahaman bahwa array iterasi adalah ekspresi, dan kita dapat mengembalikannya dalam fungsi atau menetapkan ke variabel.

S.No. Pernyataan & Deskripsi
1 untuk..dalam pemahaman

Itu for..in pemahaman adalah bentuk dasar dari pemahaman di CoffeeScript menggunakan ini kita dapat iterasi elemen daftar atau array.

2 untuk..dari pemahaman

Sama seperti Arrays CoffeeScriptScript menyediakan wadah untuk menyimpan pasangan nilai kunci yang dikenal sebagai objek. Kita dapat mengiterasi objek menggunakanfor..of pemahaman yang disediakan oleh CoffeeScript.

3 list comprehensions

Itu list pemahaman di CoffeeScript digunakan untuk memetakan larik objek ke larik lain.

Indeks pemahaman

Daftar / larik elemen memiliki indeks yang dapat digunakan dalam pemahaman. Anda dapat menggunakannya dalam pemahaman menggunakan variabel seperti yang ditunjukkan di bawah ini.

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

Contoh

Contoh berikut menunjukkan penggunaan indeks file for…inpemahaman di CoffeeScript. Simpan kode ini dalam file dengan namafor_in_index.coffee

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

Buka command prompt dan kompilasi file .coffee seperti yang ditunjukkan di bawah ini.

c:\> coffee -c for_in_index.coffee

Saat menyusun, ini memberi Anda JavaScript berikut.

// 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);

Sekarang, buka command prompt lagi dan jalankan file CoffeeScript seperti yang ditunjukkan di bawah ini.

c:\> coffee for_in_index.coffee

Saat menjalankan, file CoffeeScript menghasilkan keluaran berikut.

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

Bentuk pemahaman Postfix

Sama seperti postfix if dan unless, CoffeeScript menyediakan bentuk Postfix dari Comprehensions yang berguna saat menulis kode. Dengan menggunakan ini, kita dapat menulis filefor..in pemahaman dalam satu baris seperti yang ditunjukkan di bawah ini.

#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}
tunjukkan contoh

Menetapkan ke variabel

Pemahaman yang kita gunakan untuk iterasi array dapat ditempatkan ke variabel dan juga dikembalikan oleh fungsi.

Contoh

Perhatikan contoh yang diberikan di bawah ini. Di sini Anda dapat mengamati bahwa kami telah mengambil elemen dari sebuah array menggunakanfor..in pemahaman dan menetapkan ini ke variabel bernama names. Dan kami juga memiliki fungsi yang mengembalikan pemahaman secara eksplisit menggunakanreturnkata kunci. Simpan kode ini dalam file dengan namaexample.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()

Buka command prompt dan kompilasi file .coffee seperti yang ditunjukkan di bawah ini.

c:\> coffee -c example.coffee

Saat menyusun, ini memberi Anda JavaScript berikut.

// 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);

Sekarang, buka command prompt lagi dan jalankan file CoffeeScript seperti yang ditunjukkan di bawah ini.

c:\> coffee example.coffee

Saat menjalankan, file CoffeeScript menghasilkan keluaran berikut.

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

Dengan kata kunci

CoffeeScript menyediakan rentang untuk menentukan daftar elemen. Misalnya, rentang [1..10] sama dengan [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] di mana, setiap elemen bertambah 1. Kita juga bisa mengubah kenaikan ini menggunakanby kata kunci pemahaman.

Contoh

Contoh berikut menunjukkan penggunaan file by kata kunci dari for..inpemahaman yang diberikan oleh CoffeeScript. Simpan kode ini dalam file dengan namaby_keyword_example.coffee

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

Buka command prompt dan kompilasi file .coffee seperti yang ditunjukkan di bawah ini.

c:\> coffee -c by_keyword_example.coffee

Saat menyusun, ini memberi Anda JavaScript berikut.

// 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);

Sekarang, buka command prompt lagi dan jalankan file CoffeeScript seperti yang ditunjukkan di bawah ini.

c:\> coffee by_keyword_example.coffee

Saat menjalankan, file CoffeeScript menghasilkan keluaran berikut.

[ 1, 3, 5, 7, 9 ]