请查看下面的代码,请注意我的for循环的条件取决于step
参数。
而不是每次执行条件时它决定使用哪个分支,我想测试一次 - 我原本应该创建一个委托或条件,但它似乎不起作用。
JS可以这样做吗?
代码:
function(start, end, step) {
if (step === undefined) {
step = 1;
}
var result = [];
for (; (step < 0) ? start >= end : start <= end; start += step) {
result.push(start);
}
return result;
}
我的尝试:
function(start, end, step) {
if (step === undefined) {
step = 1;
}
var condition = (step < 0) ? start >= end : start <= end;
var result = [];
for (; condition; start += step) {
result.push(start);
}
return result;
}
答案 0 :(得分:2)
为此,您需要使condition
成为一个函数,如下所示。但即使你这样做,条件仍然会在循环的每次迭代中执行。
var condition = (step < 0) ?
function(start){
return start >= end;
} :
function(start){
return start <= end;
};
var result = [];
for (; condition(start); start += step) {
result.push(start);
}