嵌套的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]);
               
}
            }

时间: 2024-10-23 04:03:51

嵌套的for循环执行顺序。可以让内外for循环交替执行。简单解析json数组。求js中两个时间差值。的相关文章

mirantis fuel puppet执行顺序 和 对整个项目代码的执行流程理解

stage执行顺序 stage {'zero': } -> stage {'first': } -> stage {'openstack-custom-repo': } -> stage {'netconfig': } -> stage {'corosync_setup': } -> stage {'openstack-firewall': } -> Stage['main'] 1.class {'begin_deployment': stage => 'zero

js中两种for循环的使用

针对两种for循环的使用 1. for in循环的使用环境     可用在字符串.数组.对象中, 需注意:其中遍历对象得到的是每个key  的value值 2. for 变量递加的方式               可用在字符串.数组中    其中对象不能遍历 以下是测试代码   可以挨个测试以下 <script> // var n = '1233445' // var n = [1,2,3,4] var n = {name: 'wangweipeng', age: 23}; // for (v

算法笔记_017:递归执行顺序的探讨(Java)

目录 1 问题描述 2 解决方案 2.1 问题化简 2.2 定位输出测试 2.3 回顾总结 1 问题描述 最近两天在思考如何使用蛮力法解决旅行商问题(此问题,说白了就是如何求解n个不同字母的所有不同排序的序列问题,即共有n!次不同排序). 为此,我认真看了一篇出自CSDN上的博客文章,其中有一段核心代码就是在for循环里面添加一句递归调用语句,来实现n!次排序.因此,我对文章中的那段核心代码苦苦不得其解--其执行顺序究竟是咋样的呢? 附其简要代码: public int count = 0; p

Unity脚本执行顺序自研框架

本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52372611 作者:cartzhang 一.关于Unity脚本执行排序 1 Unity脚本执行排序的说明 在Unity中,要控制Unity的脚本执行顺序,Unity引擎本身已经有了一个脚本排序.这个排序在编辑器中可以编辑并设置. 它里面带有默认的,根据优先级来排定执行顺序.若没有在排序的均在default time排序的间隙

testNG注解的使用和执行顺序

testNG注解 本文主要包含testNG注解的使用方法和执行顺序两部分. 一.使用方法 testNG的注解的使用,主要用于方法上 @符号标示,@Test.@afterMethod.@BeforeClass.@BeforeMethod 二.执行顺序 单个类: 根据以下代码执行的结果,我们可以看出来,testNG的执行顺序是 @BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}

python 3 mysql sql逻辑查询语句执行顺序

python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <havin

SQL 语句的执行顺序

写在前面的话:有时不理解SQL语句各个部分执行顺序,导致理解上出现偏差,或者是书写SQL语句时随心所欲,所以有必要了解一下sql语句的执行顺序.可以有时间自己写一个简单的数据库,理解会更加深入.下面就写写我的一些理解,以SQL SERVER2008为例,进行说明. 先看下面这条简单SQL语句: 1 select 2 top 10 * 3 from Student 4 where age>20 这条SQL语句是否可以有下面两种理解呢 (1)先从Student表中选出age>20的数据,然后从这些

公用表(CTE)表达式引发的改变执行顺序同WHERE条件顺序引发的bug

以下模拟一下CTE出错 /*测试环境 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) */ 生成表Tab数据: --> --> (Roy)生成測試數據

【转】Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)

http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦,本文就来研究一下Unity中脚本的编译和执行顺序的问题. 事件函数的执行顺序 先说一下执行顺序吧. 官方给出的脚本中事件函数的执行顺序如下图:  我们可以做一个小实验来测试一下: 在Hierarchy视图中创建三个游戏对象,在Project视图中创建三条脚本,如下图所示