【问题标题】:Using an Array to Check for String Length使用数组检查字符串长度
【发布时间】:2017-03-21 00:32:27
【问题描述】:

我正在使用setIntervalnew Date() 构建一个每秒更新一次的时钟。但是,我无法使用和数组将一位数更改为两位数。例如,我希望 5 小时 9 分 5 秒显示为 05:09:05(在一位数字的前面添加零)。出于某种奇怪的原因,我的带有 for 循环和 if 语句的数组没有这样做。这是我的代码:

$(document).ready(function () {
  /* Variables */
  var d;
  var h;
  var m;
  var s;
  var arr;
  
  setInterval(function(){
    /* Get time every second */
    d = new Date();
    h = d.getHours();
    m = d.getMinutes();
    s = d.getSeconds();
    
    /* Check for character count */
    arr = [h, m, s];
    for (var i = 0; i < arr.length; i++) {
      if (arr[i].toString().length == 1) {
        arr[i] = '0' + arr[i];
      }
    }
    
    $('h1').html(h + ':' + m + ':' + s)
  }, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>12:00:00</h1>

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    你忘了输出数组而不是单独的hms

    $(document).ready(function () {
      /* Variables */
      var d;
      var h;
      var m;
      var s;
      var arr;
      
      setInterval(function(){
        /* Get time every second */
        d = new Date();
        h = d.getHours();
        m = d.getMinutes();
        s = d.getSeconds();
        
        /* Check for character count */
        arr = [h, m, s];
        for (var i = 0; i < arr.length; i++) {
          if (arr[i].toString().length == 1) {
            arr[i] = '0' + arr[i];
          }
        }
        
        //$('h1').html(arr[0] + ':' + arr[1] + ':' + arr[2])
        $('h1').html(arr.join(':')) // join instead of outputting individually
      }, 1000);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <h1>12:00:00</h1>

    【讨论】:

      【解决方案2】:

      当您将字符串放入数组时,它不会直接放入对象,而是放入对象的副本。

      然后在显示时,不是直接使用hms(原始对象没有被修改)而是显示数组中的项目(arr[0],...) .

      我希望它有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-23
        • 2013-02-01
        • 2012-06-18
        • 2014-03-03
        • 2010-09-05
        • 1970-01-01
        • 1970-01-01
        • 2018-03-22
        相关资源
        最近更新 更多