zoukankan      html  css  js  c++  java
  • 嵌套的for循环执行顺序。可以让内外for循环交替执行。简单解析json数组。求js中两个时间差值。

    1.刚接到不久的工作任务,其中包含一个解析json数组,然后让解析后的数据显示在用zrender画出来的矩形上。效果如下所示(注:没有实际意义)

    2.至于zrender等空闲了一定写上使用心得,东西很强大。

    3.中间有一项是算计相邻的两个时间的时间差(所有这些时间都是在一个数组里),如图所示,算计相邻两个矩形上时间的差值。延伸一下可以是算一个数组里相邻两个数字的差值。

    贴上我的代码 :  for (var m = 0; m < dataObj.length - 1; m++) {
                        for (var j = m + 1; j < dataObj.length; j++) {
                            var time = GetDateDiff(dataObj[m].datetime, dataObj[j].datetime, "minute");
                            addShapeText(timexx, timeyy, time + "分钟", 'normal 10px verdana');
                            timexx += 180;
                            break;
                        }
                    }

    写了一早上发现一直出错,到后来才知道是for循环是先执行外层循环,再执行内存循环,内层循环,一直直到内层for循环不满足条件才执行外层循环。问题就来了我希望的不是这样而是内外层for循环交替执行。【灵光一现:在内层for循环最后加break;】果断解决问题,哈哈。

    4.中间有个addShapeText(timexx, timeyy, time + "分钟", 'normal 10px verdana');  其实addShapeText这个方法是网上当来的,主要用来计算js中两个时间差值,具体地址记不清了,贴上代码记录下,以备以后使用: /*
                * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒
                * 其中,年月日为全格式,例如 : 2010-10-12 01:00:00
                * 返回精度为:秒,分,小时,天
                */
                function GetDateDiff(startTime, endTime, diffType) {
                    //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
                    startTime = startTime.replace(/-/g, "/");
                    endTime = endTime.replace(/-/g, "/");
        
                    //将计算间隔类性字符转换为小写
                    diffType = diffType.toLowerCase();
                    var sTime = new Date(startTime);      //开始时间
                    var eTime = new Date(endTime);  //结束时间
                    //作为除数的数字
                    var divNum = 1;
                    switch (diffType) {
                        case "second":
                            divNum = 1000;
                            break;
                        case "minute":
                            divNum = 1000 * 60;
                            break;
                        case "hour":
                            divNum = 1000 * 3600;
                            break;
                        case "day":
                            divNum = 1000 * 3600 * 24;
                            break;
                        default:
                            break;
                    }
                    return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
                }
    5.解析json数组,示例代码如下:

                $(function () {

                 //json数组
                    var title = ["aa",
                    "bb", "cc",
                    "dd", "ee",
                     "ff"]
                    DrawText(title);
                })

                function DrawText(data) {
                    var dataObj = eval(data);
                    for (var i = 0; i < dataObj.length; i++) {

                        //循环输出数组中每个值。
                        alert(dataObj[i]);
                    }
                }

  • 相关阅读:
    JS window对象 Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。
    JS window对象 返回下一个浏览的页面 forward()方法,加载 history 列表中的下一个 URL。
    JS window对象 取消计时器clearTimeout() setTimeout()和clearTimeout()一起使用,停止计时器。 语法: clearTimeout(id_of_setT
    JS window对象 History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。语法: window.history.[属性|方法]
    JS window对象 返回前一个浏览的页面 back()方法,加载 history 列表中的前一个 URL。 语法: window.history.back();
    JS window对象 计时器setTimeout() setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。 语法: setTimeout(代码,延迟时间);
    JS window对象取消计时器clearInterval() clearInterval() 方法可取消由 setInterval() 设置的交互时间。
    ELK问题处理
    nginx 日志变量含义
    nginx ssl 更换问题
  • 原文地址:https://www.cnblogs.com/fanshaomin/p/3770224.html
Copyright © 2011-2022 走看看