CoffeeScript - ความเข้าใจ

ในบทที่แล้วเราได้เรียนรู้ลูปต่างๆที่ CoffeeScript จัดเตรียมไว้ให้ whileและรูปแบบต่างๆ นอกเหนือจากนั้น CoffeeScript ยังมีโครงสร้างลูปเพิ่มเติมที่เรียกว่าcomprehensions.

ความเข้าใจเหล่านี้มาแทนที่ไฟล์ forวนซ้ำในภาษาการเขียนโปรแกรมอื่น ๆ หากเราเพิ่มคำสั่งป้องกันที่เป็นทางเลือกและค่าของดัชนีอาร์เรย์ปัจจุบันอย่างชัดเจน การใช้ความเข้าใจเราสามารถทำซ้ำอาร์เรย์เช่นเดียวกับออบเจ็กต์และความเข้าใจว่าการวนซ้ำอาร์เรย์เป็นนิพจน์และเราสามารถส่งคืนอาร์เรย์ในฟังก์ชันหรือกำหนดให้กับตัวแปรได้

ส. คำชี้แจงและคำอธิบาย
1 เพื่อ.. ในความเข้าใจ

for..in ความเข้าใจเป็นรูปแบบพื้นฐานของความเข้าใจใน CoffeeScript โดยใช้สิ่งนี้เราสามารถวนซ้ำองค์ประกอบของรายการหรืออาร์เรย์

2 เพื่อ.. ความเข้าใจ

เช่นเดียวกับ Arrays CoffeeScriptScript มีคอนเทนเนอร์สำหรับเก็บคู่คีย์ - ค่าที่เรียกว่าอ็อบเจ็กต์ เราสามารถทำซ้ำวัตถุโดยใช้ไฟล์for..of ความเข้าใจที่จัดทำโดย CoffeeScript

3 list comprehensions

list ความเข้าใจใน CoffeeScript ใช้เพื่อแมปอาร์เรย์ของวัตถุกับอาร์เรย์อื่น

ดัชนีความเข้าใจ

รายการ / อาร์เรย์ขององค์ประกอบมีดัชนีที่สามารถใช้ในการทำความเข้าใจ คุณสามารถใช้ในการทำความเข้าใจโดยใช้ตัวแปรตามที่แสดงด้านล่าง

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

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ดัชนีของไฟล์ for…inความเข้าใจใน CoffeeScript บันทึกรหัสนี้ในไฟล์ที่มีชื่อ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

รูปแบบ Postfix ของความเข้าใจ

เช่นเดียวกับ postfix if และ unless, CoffeeScript มีรูปแบบ postfix ของความเข้าใจซึ่งมีประโยชน์ขณะเขียนโค้ด เมื่อใช้สิ่งนี้เราสามารถเขียนไฟล์for..in ความเข้าใจในบรรทัดเดียวดังที่แสดงด้านล่าง

#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

ตามคำหลัก

CoffeeScript มีช่วงเพื่อกำหนดรายการองค์ประกอบ ตัวอย่างเช่นช่วง [1..10] จะเทียบเท่ากับ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] โดยที่ทุกองค์ประกอบจะเพิ่มขึ้นทีละ 1 นอกจากนี้เรายังสามารถเปลี่ยนการเพิ่มนี้ได้ ใช้by คำสำคัญของความเข้าใจ

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้งาน by คีย์เวิร์ดของ for..inความเข้าใจโดย CoffeeScript บันทึกรหัสนี้ในไฟล์ที่มีชื่อ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 ]