【问题标题】:Populate array with multiples of 25 up to certain limit - JS用 25 的倍数填充数组直到一定限制 - JS
【发布时间】:2021-08-16 16:00:51
【问题描述】:

我正在尝试创建一个包含 25 到 300 个数字的数组。 例如:

const arr = [25, 50, 75, 100, 125...., 300];

这是我目前所拥有的:

var every25to300 = 300; 

for (var i = 0; i <= every25to300; i++) {
   console.log(i);
}

我尝试过类似console.log(i + 25) 的方法,但它从 25 开始到 325。 我知道我做错了什么只是不确定到底是什么。请问我可以寻求帮助吗?

非常感谢!

【问题讨论】:

    标签: javascript arrays loops


    【解决方案1】:

    可以使用生成器,甚至可以使生成器可配置。

    function* incGenerator(start = 0, inc = 25, limit = 300) {
      let i = start;
      while (i < limit) {
        i += inc;
        yield i;
      }
      return limit;
    }
    
    const arr = [...incGenerator()];
    const arr2 = [...incGenerator(50, 100, 500)];
    
    console.log(arr);
    console.log(arr2);

    【讨论】:

    • 这个解决方案绝对完美!非常感谢您!
    【解决方案2】:

    您需要在循环内将i 乘以25 并将上限除以25

    var every25to300 = 300; 
    
    for (var i = 0; i <= every25to300 / 25; i++) {
       console.log(i * 25);
    }

    或者,在每次迭代时将i 增加25

    var every25to300 = 300;
    
    for (var i = 0; i <= every25to300; i += 25) {
      console.log(i);
    }

    要构造一个数组,请使用push() 方法:

    const arr = [];
    var every25to300 = 300;
    
    for (var i = 0; i <= every25to300; i += 25) {
      arr.push(i);
    }
    
    console.log(arr);

    【讨论】:

      【解决方案3】:

      最简单的解决方案,你可以使用第25步(i=i+25)来递增而不是i++

      const step = 25;
      const initial = 25;
      const every25to300 = 300;
      let result = [];
      for (let i = 25; i <= every25to300; i = i + 25) {
        result.push(i);
      }
      
      console.log(result);
      
      // using while loop
      result = [];
      let index = 0;
      while (index < every25to300) {
        index = index + 25;
        result.push(index);
      }
      console.log(result);

      【讨论】:

        【解决方案4】:

        获取循环时间值然后推送它

        var start = 25; 
        var end = 300
        var arry = [];
        
        for(var i = 1; i<= end/start; i++){
           arry.push( i * start )
        }
        
         console.log(arry)
        

        【讨论】:

          【解决方案5】:

          您可以使用array#from 来生成您的数组。

          const arr = Array.from({length: 12}, (_,i) => 25 + (i * 25))
          console.log(arr);

          您可以按 25 步递增。

          const every25to300 = 300, result = [];
          for (let i = 25; i <= every25to300; i += 25) {
             result.push(i);
          }
          console.log(result);

          【讨论】:

            猜你喜欢
            • 2020-10-13
            • 1970-01-01
            • 1970-01-01
            • 2015-07-28
            • 2012-02-28
            • 2015-09-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多