【问题标题】:Increment a number between 2 values and also process the limit of the range在 2 个值之间增加一个数字,并处理范围的限制
【发布时间】:2021-01-05 12:39:57
【问题描述】:

如何通过给定的步骤(例如 3)轻松地在 2 个值(例如 0 和 10)之间增加一个数字并处理范围的限制?所有数字都可以是整数或浮点数。我正在考虑使用增量为 3 的 for 循环,但是我将没有值 10:

for(i=0; i<=10; i=i+3){
  // Do something with i
}

应在循环内处理的数据:0、3、6、9、10

【问题讨论】:

  • 我认为最简单的方法是在循环之后输出上限。

标签: javascript for-loop range increment


【解决方案1】:

您可以使用Math.min 限制上限。

const
    step = 2.7;

for (let i = 0, l = Math.ceil(10 / step); i <= l; i++) {
    const value = Math.min(i * step, 10);
    console.log(value);
}

【讨论】:

    【解决方案2】:
    function example(){
        let start = 0;
        let end = 13;
        let step = 3;
        let arr = [];
        for(i=start; i<=end; i=i+step){
            arr.push(i);
        }
        if(arr.indexOf(end) === -1)
            arr.push(end);
    
        console.log(arr.join());
    }
    example();
    

    尝试在浏览器sn-ps中执行这个函数

    【讨论】:

      【解决方案3】:

      这很好用,谢谢

      const lower_limit = 1;
      const upper_limit = 12;
      const step = 3;
      
      var range = upper_limit - lower_limit;
      
      for (let i=0, l=Math.ceil(range/step); i<=l; i++) {
          const value = lower_limit + Math.min(i*step, range);
          console.log(value);
      }

      【讨论】:

        【解决方案4】:
        const start = 0;
        const limit = 10;
        const step = 3;
        let i = start;
        
        for (i = start; i <= limit; i+=step) {
            console.log(i);
        }
        
        if ( i !== limit) {
            console.log(limit);
        }
        

        【讨论】:

        • 如果限制为 9,您的代码将打印两个 9。您的输出将是 0,3,6,9,9
        • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的答案添加解释并说明适用的限制和假设。 From Review
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多