让我们说我想要一个变量来包含1到100之间的数字。 我可以这样做:
var numbers = [from 1, to 100]
但要花掉所有这些数字需要花费大量时间。 有没有办法为该变量设置范围?类似的东西:
x=>statesFilter.Contains(x.State))
这可能听起来像一个非常愚蠢的问题,但是我自己无法弄明白。提前谢谢。
答案 0 :(得分:4)
除了this answer之外,还有以下几种方法:
for
循环:
var numbers = []
for (var i = 1; i <= 100; i++) {
numbers.push(i)
}
Array.prototype.fill
+ Array.prototype.map
var numbers = Array(100).fill().map(function(v, i) { return i + 1; })
或者,如果您被允许使用arrow functions:
var numbers = Array(100).fill().map((v, i) => i + 1)
或者,如果您被允许使用spread operator:
var numbers = [...Array(100)].map((v, i) => i + 1)
但请注意,使用for
循环是fastest。
答案 1 :(得分:3)
将最小和最大范围存储在对象中:
var a = {
from: 0,
to: 100
};
答案 2 :(得分:1)
所有现代浏览器都支持,包括IE9 +。
var numbers = Array.apply(null,Array(100)).map(function(e,i){return i+1;});
答案 3 :(得分:1)
您可以轻松创建自己的,并仅存储限制:
function Range(begin, end) {
this.low = begin;
this.hi = end;
this.has = function(n) {
return this.low <= n <= this.hi;
}
}
// code example
var range = new Range(1,100);
var num = 5;
if (range.has(num)) {
alert("Number in range");
}
&#13;
答案 4 :(得分:0)
对于它的价值,@ MaxZoom给出了适合我情况的答案。但是,我确实需要修改return语句以使用&&比较进行评估。否则,对于任何数字似乎返回true。
function Range(begin, end) {
this.low = begin;
this.hi = end;
this.has = function(n) {
//return this.low <= n <= this.hi;
return ( n >= this.low && n <= this.hi );
};
}
// code example
var alertRange = new Range(0,100);
var warnRange = new Range(101, 200);
var num = 1000;
if (alertRange.has(num)) {
alert("Number in ALERT range");
//Add Alert Class
}
else if (warnRange.has(num)) {
alert("Number in WARN range");
//Add Warn Class
}
else{
alert("Number in GOOD range")
//Default Class
}
答案 5 :(得分:0)
蟒蛇
# There can be two ways to generate a range in python
# 1)
a = [*range(5)]
print(a)
#[0, 1, 2, 3, 4]
# 2)
a = [*range(5,10)]
print(a)
#[5, 6, 7, 8, 9]
Javascript
// Similar pattern in Javascript can be achieved by
let a;
// 1)
a = [...Array(5).keys()]
console.log(a) //[0, 1, 2, 3, 4]
// 2)
a = [...Array(5).keys()].map(value => value + 5);
console.log(a) //[5,6,7,8,9]