javascript - 在 JavaScript 上循环 2 个数字范围

标签 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]));
}

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

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

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

for(x = 1 to 5, then x = 10 to 15) {
  // do something with x
}
<小时/>

限制:

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

我已经搜索过SO但找不到任何解决方案。

提前致谢!

最佳答案

您可以使用for..of循环、for循环、展开元素

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);

如果要求仅在console处记录数字,或者“//用x做某事”而不将“something”的结果存储在数组中,我们可以将javascript减少为

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

关于javascript - 在 JavaScript 上循环 2 个数字范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990466/

相关文章:

javascript - 删除已经绘制的对象三

javascript - NodeJS 多站点网络抓取

javascript - jquery 单击事件在单击之前触发

node.js - NRWL NX - 为什么我得到 "Cannot find name ' describe '"when running "ng serve express”?

javascript - 从事件处理程序访问私有(private)属性和方法

javascript - 当我切换另一个元素时,如何使跨度正确对齐?

javascript - 如何在javascript中使这个函数动态化

javascript - 尽管在 JS 中处理了失败,但 Chrome 报告请求失败

node.js - MongoDB : aggregate $project take array current item

node.js - 为什么 Phantom、Casper 和 Meteor 需要它们自己的可执行文件?