我想知道我是否可以在列表理解中返回值
[return role_ for role_ in self.roles if role.name==parameter]
当然它不起作用。目前我不得不使用经典的循环
for role_ in self.roles:
if role_.name == parameter:
return role_
答案 0 :(得分:7)
没有。列表理解的目的是建立一个列表,而不是保存代码行。
由于您不希望列表作为结果,因此列表推导是该作业的错误工具。循环非常好。
答案 1 :(得分:6)
将next()
function与生成器表达式一起使用:
const requestPromise = function(resolve, reject) {
return (response) => {
let body = [];
response.on('data', body.push);
response.on('end', () => {
body = body.join('');
if (body == "") {
reject("Body is empty");
} else {
resolve(body);
}
});
};
};
这将返回第一个匹配的var timeOperations = ["2013-03-09", "2013-03-16", "2013-03-23", "2013-03-30", "2013-04-06"].map(function(value){
return moment(value, "YYYY-MM-DD").format('MMM-DD').toString();
});
var barChartData = {
labels: timeOperations,
datasets: [{
borderColor: "#3e95cd",
data: [10943, 29649, 6444, 2330, 36694],
fill: false,
borderWidth: 2
},
{
borderColor: "#ff3300",
data: [9283, 1251, 6416, 2374, 9182],
fill: false,
borderWidth: 2
}]
};
值,如果没有此值,则返回return next((role_ for role_ in self.roles if role_.name == parameter), None)
。
你不能使用列表理解,不,因为你没有生成列表。
答案 2 :(得分:5)
最接近的是使用生成器表达式调用.children()
:
$('form').children().prop('disabled',true)