嵌套的for迴圈執行順序。可以讓內外for迴圈交替執行。簡單解析json數組。求js中兩個時間差值。

來源:互聯網
上載者:User

標籤:c   blog   a   http   tar   ext   

1.剛接到不久的工作任務,其中包含一個解析json數組,然後讓解析後的資料顯示在用zrender畫出來的矩形上。效果如下所示(註:沒有實際意義)

2.至於zrender等空閑了一定寫上使用心得,東西很強大。

3.中間有一項是算計相鄰的兩個時間的時間差(所有這些時間都是在一個數組裡),,算計相鄰兩個矩形上時間的差值。延伸一下可以是算一個數組裡相鄰兩個數位差值。

貼上My Code :  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]);
                }
            }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.