有没有办法创建整数范围?
在其他语言中,我可以使用Range(1, 9)
轻松创建[1, 2, ... 8]
。
有没有一种简单的方法可以在JavaScript中创建列表?
答案 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;
答案 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中创建列表?
不,但您可以使用ES
和map
等spread syntax
功能创建自己的解决方案。
var range = (start, end) => start < end ? [...Array(end - start)].map((_, i) => start + i) : [];
console.log(range(1,9));
此外,returns
empty
数组适用于start
大于end
的情况。