将一系列数字设置为变量(Javascript)

时间:2016-01-25 23:35:30

标签: javascript variables range intervals

让我们说我想要一个变量来包含1到100之间的数字。 我可以这样做:

var numbers = [from 1, to 100] 

但要花掉所有这些数字需要花费大量时间。 有没有办法为该变量设置范围?类似的东西:

x=>statesFilter.Contains(x.State))

这可能听起来像一个非常愚蠢的问题,但是我自己无法弄明白。提前谢谢。

6 个答案:

答案 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)

您可以轻松创建自己的,并仅存储限制:

&#13;
&#13;
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;
&#13;
&#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]

相关问题