CoffeeScript - 列表解析



在 CoffeeScript 中,我們還可以在一個數組中儲存一組物件。列表解析常用於將一個物件陣列對映到另一個數組。

語法

假設我們有一個 CoffeeScript 物件陣列,例如 [{key1: "value", key2: value}, {key1: "value", key2: value}],那麼你可以如下使用列表解析來迭代這些元素。

for key,value of  [ {key1: "value", key2: value}, {key1: "value", key2: value} ]
   console.log key+"::"+value

示例

以下示例演示了 CoffeeScript 提供的列表解析的用法。將此程式碼儲存在名為 list_comprehensions.coffee 的檔案中

students =[  
    name: "Mohammed" 
    age: 24
    phone: 9848022338 
  ,  
    name: "Ram" 
    age: 25
    phone: 9800000000 
  ,  
    name: "Ram" 
    age: 25
    phone: 9800000000   
 ]  
 
names = (student.name for student in students)
console.log names

開啟命令提示符,然後如下編譯 .coffee 檔案。

c:\> coffee -c list_comprehensions.coffee

編譯後,它會生成以下 JavaScript。

// Generated by CoffeeScript 1.10.0
(function() {
  var names, student, students;

  students = [
    {
      name: "Mohammed",
      age: 24,
      phone: 9848022338
    }, {
      name: "Ram",
      age: 25,
      phone: 9800000000
    }, {
      name: "Ram",
      age: 25,
      phone: 9800000000
    }
  ];

  names = (function() {
    var i, len, results;
    results = [];
    for (i = 0, len = students.length; i < len; i++) {
      student = students[i];
      results.push(student.name);
    }
    return results;
  })();

  console.log(names);

}).call(this);

現在,再次開啟命令提示符,然後如下執行 CoffeeScript 檔案。

c:\> list_comprehensions.coffee

執行後,CoffeeScript 檔案生成以下輸出。

[ 'Mohammed', 'Ram', 'Ram' ] 
coffeescript_comprehensions.htm
廣告