首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Javascript/jQuery中创建两个数字之间的所有整数数组

在Javascript/jQuery中创建两个数字之间的所有整数数组
EN

Stack Overflow用户
提问于 2011-11-10 01:52:34
回答 14查看 314.1K关注 0票数 204

假设我有以下复选框:

代码语言:javascript
复制
<input type="checkbox" value="1-25" />

为了获得定义我要查找的范围边界的两个数字,我使用以下jQuery:

代码语言:javascript
复制
var value = $(this).val();
var lowEnd = Number(value.split('-')[0]);
var highEnd = Number(value.split('-')[1]);

那么,如何创建一个包含lowEndhighEnd之间的所有整数的数组,包括lowEndhighEnd本身?显然,对于这个特定的示例,结果数组将是:

代码语言:javascript
复制
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-11-10 01:56:44

代码语言:javascript
复制
var list = [];
for (var i = lowEnd; i <= highEnd; i++) {
    list.push(i);
}
票数 224
EN

Stack Overflow用户

发布于 2015-01-31 09:50:39

ES6:

使用Array.from (docs here):

代码语言:javascript
复制
console.log(
   Array.from({length:5},(v,k)=>k+1)
)

票数 134
EN

Stack Overflow用户

发布于 2015-11-01 07:07:26

在JavaScript ES6中:

代码语言:javascript
复制
function range(start, end) {
  return Array(end - start + 1).fill().map((_, idx) => start + idx)
}
var result = range(9, 18); // [9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
console.log(result);

为了完整起见,这里使用了一个可选的step参数。

代码语言:javascript
复制
function range(start, end, step = 1) {
  const len = Math.floor((end - start) / step) + 1
  return Array(len).fill().map((_, idx) => start + (idx * step))
}
var result = range(9, 18, 0.83);
console.log(result);

我会在一个实际的项目中使用npm中的range-inclusive。它甚至支持倒退步骤,所以这很酷。

票数 118
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8069315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档