【问题标题】:javascript create array from for loopjavascript从for循环创建数组
【发布时间】:2012-09-11 13:10:23
【问题描述】:

我有一个存储到两个变量中的年份范围。我想在该范围内创建一个年份数组。

类似:

var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

for (var i = yearStart; i < yearEnd; i++) {

     var obj = {
        ... 
     };

      arr.push(obj);
}

我应该在 obj 里面放什么?

我想生成的数组是这样的:

arr = [2000, 2001, 2003, ... 2039, 2040]

【问题讨论】:

  • 我发布了一个答案,如果最高数字大于您的特定数字,则给出最高数字以及所有值

标签: javascript arrays for-loop


【解决方案1】:

如果您可以丢失 yearStart 值,则更短:

var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

while(yearStart < yearEnd+1){
  arr.push(yearStart++);
}

更新: 如果你可以使用 ES6 语法,你可以按照 here 建议的方式进行操作:

let yearStart = 2000;
let yearEnd = 2040;
let years = Array(yearEnd-yearStart+1)
    .fill()
    .map(() => yearStart++);

【讨论】:

    【解决方案2】:

    删除 obj 并在你的 for 循环中执行此操作:

    arr.push(i);
    

    另外,i &lt; yearEnd 条件不包括最后一年,因此将其更改为 i &lt;= yearEnd

    【讨论】:

      【解决方案3】:
      var yearStart = 2000;
      var yearEnd = 2040;
      
      var arr = [];
      
      for (var i = yearStart; i <= yearEnd; i++) {
      
           arr.push(i);
      }
      

      【讨论】:

        【解决方案4】:

        你需要推送i

        var yearStart = 2000;
        var yearEnd = 2040;
        
        var arr = [];
        
        for (var i = yearStart; i < yearEnd+1; i++) {
            arr.push(i);
        }
        

        然后,您的结果数组将是:

        arr = [2000, 2001, 2003, ... 2039, 2040]

        希望对你有帮助

        【讨论】:

        • 最佳解决方案。谢谢!
        猜你喜欢
        • 2021-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 2019-08-28
        • 2017-06-16
        • 1970-01-01
        • 2017-08-09
        相关资源
        最近更新 更多