当前位置: 首页 > 知识库问答 >
问题:

在循环中使用变量作为大于/小于运算符

屈晨
2023-03-14

最近,我一直在处理一些紧凑的代码,我试图得到一个非常奇怪的尽可能小的循环。

function test (start, comparison, end, increment) {
    for (x = star; x comparison end; x += increment) {
        console.log("e");
    }
}
test(1, "<", 3, 1);

//Expected theoretically
// for (x = 1; x < 3; x += 1) {
//  console.log("e");
//}

我知道我可以让循环工作,比如一个if/ther语句,但是我正在寻找一种更小的方法来做到这一点,因为这使得代码大了两倍(更长的“循环”)。

function test (start, value, end, increment) {
  if (value > 0) {
    //Loop 1
  } else {
    //Loop 2
  }
}

那么是的,有什么办法可以做到这一点吗?还是我一直在用一个不同的角色做两个不同的循环?提前谢谢

共有1个答案

轩辕成天
2023-03-14

您可以使用函数而不是字符串,因为可以在不使用eval的情况下调用函数,这是不可取的。

function test (start, comparison, end, increment) {
    for (var x = start; comparison(x, end); x += increment) {
        console.log(x);
    }
}

const isSmaller = (a, b) => a < b;

test(1, isSmaller, 3, 1);
 类似资料:
  • 问题内容: 我想做的很简单。我想使用python的模块调用以下命令。 该命令可以简单地工作并将其内容复制到当前工作目录中。但是,当我尝试在脚本中使用模块调用此命令时,会出错。以下是我在做什么: 我收到以下错误: 我究竟做错了什么 ?如何在子流程模块命令中使用大于运算符? 问题答案: 输出重定向是一个 shell 功能,但是带有列表并且(默认)不使用shell。 您必须在这里使用: 或更妙的是,用于

  • 我有一个掷骰子猜谜游戏,我试图评估用户的输入,以确保他们不能输入小于1和大于6的数字,不幸的是,只有我的if语句,他们仍然可以输入这些数字,尽管显示一个字符串输入无效,我想做一个while循环,不断要求他们输入等于或大于1的有效数字和等于且小于 6,如果用户不断输入不正确的数字,while 循环将继续要求他们输入有效数字,直到他们输入一个,然后该数字将正常运行程序。

  • 问题内容: 我正在尝试解决一个任务(我对Java还是很陌生),并且已经花了很多资源来解决此冲突,但是仍然无法解决(注意:Tuna是我的Scanner变量) } 结果是:线程“ main” java.lang.Error中的异常:未解决的编译问题:重复的局部变量计数 我应该解决的问题是: 编写程序以读取一个数字并将所有数字从1汇总到该数字。例如,如果用户键入6,则输出为21(1 + 2 + 3 +

  • 问题内容: 我注意到最近有一段代码直接比较两个整数列表,如下所示: 这似乎有点奇怪,但我想如果所有元素都大于,它将返回,如果每个元素相等或元素大于则返回False 。所以我测试了它: 好的,行得通。和: 但是当它变得更加模糊时: 要么: 结果有点陌生。python实际在做什么?看来它返回的结果偏向于第一个列表,其中最左边的元素大于相应的元素? 问题答案: 从比较序列和其它类型在Python教程:

  • 问题内容: Go编译器不应该将循环变量捕获为本地分配的闭包变量吗? 长版: 这也引起了我对C#的困惑,并且我试图理解它。这就是为什么它在C#5.0中已得到修复(原因:循环变量 不能 在循环体内改变)以及未在C#循环中对其进行修复的原因(原因:循环变量 可以 在循环体内改变)。 现在(对我而言),Go中的循环看起来很像C#中的循环,但是尽管事实是我们无法更改这些变量(例如和中)。仍然我们必须首先将它

  • 问题内容: Swift 1.1包含〜>运算符的声明: 这在Swift中有什么用?它似乎已声明,但未定义任何可利用它的函数。其他开发人员已将其用于响应模式和封送队列之间的封包,但我想知道为什么在标准框架中对其进行了定义。我猜想它可以“保留”一个自定义运算符供开发人员使用,因为它具有最高的优先级。 问题答案: 由于Swift是开源的,我们可以看到将stdlib 包括在内的实际原因:作为Swift 1.