CoffeeScript - 列表推导
在 CoffeeScript 中,我们还可以将一组对象存储在一个数组中。 list comprehension 用于将一个对象数组映射到另一个数组。
语法
假设我们在 CoffeeScript 中有一个对象数组 [{key1: "value", key2: value}, {key1: "value", key2: value}] 那么你可以使用 list 推导如下图。
for key,value of [ {key1: "value", key2: value}, {key1: "value", key2: value} ] console.log key+"::"+value
示例
以下示例演示了 CoffeeScript 提供的 list 推导的用法。 将此代码保存在名为 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' ]