我在我的sass代码中重构函数,因此在尝试尽可能多地遵循函数式编程规则时,它们的使用范围更广。如何根据参数分配操作类型,这样我就不必在else语句中重复代码了?
实际上我想要实现的是在列表中选择下一个或上一个索引
app.get("/myprojects/:id/cost", function(req,res){
Project.findById(req.params.id).populate("labours materials tools plants others").exec(function(err, foundProject){
if (err) {
console.log(err);
} else {
var plantRateSum = foundProject.plants.reduce(function(sum, plant){
return sum + plant.plantrate;
}, 0);
res.render("cost", {project: foundProject, plantRateSum:plantRateSum});
}
});
});
给出结果
@function mathOperation($number, $type) {
@return $number #{if($type == sum, '+', '-')} 1;
}
@debug mathOperation(5, sum);
@debug type-of(mathOperation(5, sum));
而不是实际的总和和类型编号。
甚至尝试直接传递实际的运算符,例如+或 - 作为参数,只是将其用作变量,没有运气。
答案 0 :(得分:0)
您在函数中创建一个sass列表,而不是进行数学计算。使用 inspect(),您可以从ist创建一个字符串,因此您基本上搜索的是一个评估字符串的方法。 Sass不提供此功能,您必须编写一个返回数字
的数字方程式@function mathOperation($number, $type) {
@return $number + if($type == sum, 1, -1);
}