一、

  1.   构建一个数组【“00:00”,"00:05"..."23:55"】的数组

    function buildAxis(){
    var ary=[];
    ary.push("00:00");
    var start = Date.UTC(2017,1,1,-8,0,0);
    for(var i=0;i<288;i++){
    start += 1000*60*5;//(5分钟的毫秒数)
    var _date=new Date(start);
    var Hours=cal(_date.getHours());
    var Minutes=cal(_date.getMinutes());
    ary.push(Hours+":"+Minutes);
    }
    ary.pop();
    return ary;
    }
    function cal(o){
    if(o<10&&String(o).length==1){
    return "0"+o;
    }else{
    return o;
    }
    }
  2.   根据输入的年月份(2017-09),返回月份每一天的数组   【“2017-09-01*******2017-09-30”】注意天数
/**
* @desc 根据月份得出当前日月年天数的数组【2018-06-01,2018-06-02...2018-06-30】。
* @param str
* @return {Array} arr
*/
function getCountDays(str) {
var year=str.substr(0,4);
var month=str.substr(-2);
var curDate = new Date(year,month,0);//如果是0返回最后一天 /* 返回当月的天数 */
var day= curDate.getDate();
var dayArr=[];
for (var k = 1; k <=day; k++){
dayArr.push(str.substr(0,4)+"-"+str.substr(-2)+"-"+add0(k)); }
return dayArr;
}
function add0(o){
if(o<10&&String(o).length==1){
return "0"+o;
}else{
return o;
}
}
var str="2017-06";
var arr=getCountDays(str);
console.log(arr);//["2017-06-01","2017-06-02","2017-06-03"..."2017-06-30"]

附加实例,$.grep筛选   

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=SLrOIdVUUI5fbvsZTMqTFshsG993NBAG"></script>
<title>地图展示</title>
<style type="text/css">
img { width: 150px !important;}
</style>
</head>
<body>
</body>
</html>
<script type="text/javascript" src="js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//原数组
var rowData=[
{date:'2017-09-18',fzlMax:0.18,fzlMin:0.12},
{date:'2017-09-20',fzlMax:0.25,fzlMin:0.2},
{date:'2017-09-19',fzlMax:0.22,fzlMin:0.12}
]
//需要的数组格式
var series=[
{
name:'最大负载',
type:"line",
data:[]
},{
name:'最小负载',
type:"line",
data:[]
}
]
//第一步:组成每一天的大数组 dateArr ["2017-09-01"****"2017-09-31"]
window.onload=function(){
var str="2017-09";
var dateArr=getCountDays(str);
//第二部:循环数组
for(var j=0;j<dateArr.length;j++){
var ary=$.grep(rowData,function(n,dIndex){
return (n.date==dateArr[j]);
})
if(ary.length>0){
series[0].data.push(ary[0].fzlMax);
series[1].data.push(ary[0].fzlMin);
}else{
series[0].data.push("-");
series[1].data.push("-");
}
}
console.log(series);
} function add0(o){
if(o<10&&String(o).length==1){
return "0"+o;
}else{
return o;
}
}
function getCountDays(str) {
var year=str.substr(0,4);
var month=str.substr(-2);
var curDate = new Date(year,month,0);//如果是0返回最后一天
/* 返回当月的天数 */
var day= curDate.getDate();
var dayArr=[];
for (var k = 1; k <=day; k++) {
dayArr.push(str.substr(0,4)+"-"+str.substr(-2)+"-"+add0(k));
}
return dayArr;
} </script>
  • 两个数组相除
    Number.prototype.toMyFixed=function(){
try{
if(Math.abs(this)>1000){
return parseFloat(this.toFixed(0),10);
}else if(Math.abs(this)<1){
return parseFloat(this.toFixed(4),10);
}else{
return parseFloat(this.toFixed(2),10);
}
}catch(e){
return this;
}
}
var arr1=[2,4,6];
var arr2=[1,2,3];
alert(calc(arr1,arr2));
//[2,2,2];两个数组相除
function calc(arr1,arr2){
var arr=[];
for(var i=0;i<arr1.length;i++){
var val=devided(arr1[i],arr2[i]);
arr.push(val);
}
return arr;
}
function devided(topNum,botNum){
if(isNaN(topNum)||isNaN(botNum)||parseFloat(botNum)==0){
return "-";
}else{
return Number(topNum/botNum).toMyFixed();
}
}

3.数组求和

/**
* @desc 对一个数组进行求和。
* @param 数组
* @return {string} sum
*/
function arrSum(arr){
if(!arr||arr.length===0){
return 0;
}
var sum=arr.reduce(function(x,y){
x=isNaN(x)?0:x;
y=isNaN(y)?0:y;
return Number(parseFloat(x)+parseFloat(y)).toFixed(2);
},0)
return sum;
}

4.将样式字符串改成对象   2019/06/12  组态中按钮样式合并用到

    var style="width:100px;height:200px;border:1px solid red;border-radius:8px 10px 2px 5px";
console.log(styleToObject(style));//{width:100px,height:200px,border:1px solid red,border-radius:8px 10px 2px 5px}
/**把样式字符串样式转化为{}
*@param style:样式字符串
**/
function styleToObject(style) {
let styleObject = {} if (style && style != '' && style !== 'null') {
const len = style.length
styleObject = style.charAt(len - 1) === ';' ? '{' + style + '}' : '{' + style + ';}' // 统一样式后面以";"结束 // 将字符串转化为json标准字符串
styleObject = styleObject.replace(/{/g, '{\"')
styleObject = styleObject.replace(/:/g, '\":\"')
styleObject = styleObject.replace(/;/g, '\",\"')
styleObject = styleObject.replace(/,"}/g, '}') // 将json标准字符串转化为{}对象
styleObject = JSON.parse(styleObject)
}
return styleObject
}

pulic——功能性(自己写完测试的)的更多相关文章

  1. 不写完不让回家的JQuery的事件与动画

    在这看不见太阳的小黑屋里,苦逼的一天又开始了 好了闲话我也就不扯了,接下来我就来说说我对jQuery事件和动画的理解吧!!! 还是得再扯两句,我们敬爱的,Y老师讲完了,jQuery事件和动画,对着我们 ...

  2. 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.

    刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.

  3. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  4. Scrum:The Definition of Done —— 作业有没有写完呢?

    Scrum:The Definition of Done -- 作业有没有写完呢?_苗得雨_新浪博客 http://blog.sina.com.cn/s/blog_59450ffc0102eiai.h ...

  5. HDU 4640 状态压缩DP 未写完

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4640 解题思路: 首先用一个简单的2^n*n的dp可以求出一个人访问一个给定状态的最小花费,因为这i个 ...

  6. 用putty玩linux的时候由于以前用window 习惯写完东西按一下ctrl+s 保存

    问题描述:用putty玩linux的时候由于以前用window 习惯写完东西按一下ctrl+s 保存,但是在putty一按下就不能再输入了.后来查找到:ctrl+s 是putty的一个命令大概是这样子 ...

  7. Word 双栏排版最后多一页空白页删不掉、左栏文字没写完就到右栏了

    1. 问题 问题:Word双栏排版,最后多一页空白页,删不掉.如图: 原因分析:删不掉是因为末尾文字处其实有个下一页分节符,只不过可能看不到. 如何清晰的看到? 视图 > 大纲,就可以看到了.如 ...

  8. Linux安装Oracle 11G过程(测试未写完)

    一.简介 Oracle数据库在系统运维中的重要性不言而喻,通过熟悉Oracle的安装来加深对操作系统和数据库知识的了解.Linux安装Oracle前期修改linux内核参数很重要,其实就是linux下 ...

  9. LINUX下多路径的介绍和安装配置(测试未写完)

    一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来 ...

随机推荐

  1. delphi 指针 认识

    delphi 指针分为类型指针和无类型指针: 类型指针分为PChar.PInteger.PString等. 无类型指针Pointer. PPChar/PP...为指针的指针 @和Addr一样,为获取变 ...

  2. 七月小说网 Python + GraphQL (三)

    概述 后台数据库几个基本表基本搭建完毕,看了下Github Develop的V4 Api抛弃了RESTful,采用GraphQL,感觉很有意思,一看文档,竟然有Python的开源实现 Graphene ...

  3. [.net 多线程]SpinWait

    <CLR via C#>读书笔记-线程同步(四) 混合线程同步构造简介 之前有用户模式构造和内核模式构造,前者快速,但耗费CPU:后者可以阻塞线程,但耗时.耗资源.因此.NET会有一些混合 ...

  4. Invoke()的使用

    (最近在看协程) Invoke()方法是一种委托机制 Invoke ( "SendMsg", 3 ), 意思是3秒之后调用 SendMsg() 方法 使用时应该注意以下几点: 1. ...

  5. day01.1-Python编译器的安装

    一. 在Windows环境中安装Python编译器     1. 访问Python官网https://www.python.org,下载适用于Windows环境的相关编译器版本: 2. 点击Pytho ...

  6. 20165219 2017-2018-2 《Java程序设计》第5周学习总结

    20165219 2017-2018-2 <Java程序设计>第5周学习总结 课本知识总结 第7章 内部类与异常类 一 1 内部类:类的一种成员 2 外嵌类:包含内部类的类称为内部类的外嵌 ...

  7. 文件参数化-utp框架之根据yaml文件自动生成python文件+utp运行用例

    根据yaml文件自动生成python文件 utp框架: bin目录:存放执行文件(run.py) cases目录:存放生成的用例的python文件(该目录下的文件为根据data目录下的测试用例生成的p ...

  8. SDUT OJ 数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  9. jquery循环语句if-else if-else

    jquery循环语句if-else if-elsecallbackFun()函数,开始是写的if-if-else.结果是不管第一个if有没有匹配到,会再次判断, 如果匹配到第二个if,则第二个if中的 ...

  10. django中的setting最佳配置小结

    Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运 ...