在javascript上循环显示2个数字范围

GCS*_*SDC 0 javascript node.js

我正在开发一个解决方案,我需要循环通过两个独立的连续数字范围.让我们说例如1到5和10到15.

我正在使用以下代码:

var X = [];

for (i = 1; i < 6; i++) {
  X.push(i);
}
for (i = 10; i < 16; i++) {
  X.push(i);
}

for (var x in X) {      
  console.log(parseInt(X[x]));
}
Run Code Online (Sandbox Code Playgroud)

这段代码完成了这项工作,但是有很多开销和不必要的操作:

  • 花费时间填充所需范围的阵列
  • 通过索引访问元素以获取真值(X [x])
  • 使用parseInt将值转换回整数(因为类型X [x]是字符串)

是否有更简单/更有效的方法来执行此类操作? 像这样的东西:

for(x = 1 to 5, then x = 10 to 15) {
  // do something with x
}
Run Code Online (Sandbox Code Playgroud)

约束:

  • 使用内部具有相同代码的两个单独循环是没有用的,因为此循环在代码上的多个位置上重复
  • 在函数内打包循环的内容是不可取的
  • 检查x边界并在循环内更新其值也是不可取的(我的意思是,检查x == 5然后将其更改为10)

我搜索过SO,但找不到任何解决方案.

提前致谢!

gue*_*314 5

你可以使用for..ofloop,forloop,spread元素

let res = [];

for (let [from, to] of [[1, 6], [10, 16]]) 
  for (let x = from; x < to; x++) console.log(x); res.push(x);

console.log(res);
Run Code Online (Sandbox Code Playgroud)

如果要求只记录数字console,或"//用x做某事"而不在数组中存储"某事"的结果,我们可以减少javascript

for (let [from, to] of [[1, 6], [10, 16]])
  for (let x = from; x < to; x++) console.log(x); // do stuff with `x`
Run Code Online (Sandbox Code Playgroud)