有没有办法在JavaScript中创建一个Integer范围?

时间:2018-05-07 13:44:56

标签: javascript

有没有办法创建整数范围?

在其他语言中,我可以使用Range(1, 9)轻松创建[1, 2, ... 8]

有没有一种简单的方法可以在JavaScript中创建列表?

3 个答案:

答案 0 :(得分:1)

您可以创建一个名为Range的可重用函数,并循环开始和结束值。您可以进一步添加if条件,以确保起始值始终小于结束值。



function Range(start, end){
  var rangeArray = [];
  if(start < end){
    for(var i=start; i<end; i++){
      rangeArray.push(i);
    }
  }
  return rangeArray;
};

console.log(Range(1,9));
console.log(Range(2,9));
console.log(Range(5,12));
console.log(Range(16,12));
console.log(Range(30,12));
&#13;
&#13;
&#13;

答案 1 :(得分:1)

 const range = (start, end) => Array.from({length: end - start}, (_, i) => start + i);

 console.log(range(1,5));

创建一个包含索引的数组。如果你需要循环,迭代器可能会更好:

 function* range(start, end = Infinity) {
   for(let i = start; i < end; i++)
     yield i;
 }

可以用作:

 for(const v of range(1, 10))
    console.log(v);

您还可以轻松地将迭代器转换为数组:

 console.log([...range(0, 10)]);

答案 2 :(得分:1)

  

有没有一种简单的方法可以在JavaScript中创建列表?

不,但您可以使用ESmapspread syntax功能创建自己的解决方案。

var range = (start, end) => start < end ? [...Array(end - start)].map((_, i) => start + i) : [];
console.log(range(1,9));

此外,returns empty数组适用于start大于end的情况。