列表理解(list comprehensions)
优质
小牛编辑
136浏览
2023-12-01
在CoffeeScript中,我们还可以在数组中存储一组对象。 list推导用于将对象数组映射到另一个数组。
语法 (Syntax)
假设我们在CoffeeScript中有一个对象数组,如[{key1: "value", key2: value}, {key1: "value", key2: value}]那么你可以使用list [{key1: "value", key2: value}, {key1: "value", key2: value}]来迭代这些元素,如下所示。
for key,value of [ {key1: "value", key2: value}, {key1: "value", key2: value} ]
console.log key+"::"+value
例子 (Example)
以下示例演示了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
打开command prompt并编译.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);
现在,再次打开command prompt并运行CoffeeScript文件,如下所示。
c:\> list_comprehensions.coffee
执行时,CoffeeScript文件生成以下输出。
[ 'Mohammed', 'Ram', 'Ram' ]