//字符串转Date 字符串格式 yyyy-MM-dd HH:mm:ss
String.prototype.toDate = function() {
var date = eval('new Date(' + this.replace(/\d+(?=-[^-]+$)/,
function(a) {
return parseInt(a, 10) - 1;
}).match(/\d+/g) + ')');
return date;
};

//全部替换
String.prototype.replaceAll = function(txt) {
return this.replace(new RegExp(txt, "gm"), '');
}

//Date转字符串
Date.prototype.toString = function(format) {
var strYear = this.getFullYear(),
strMonth = this.getMonth() + 1,
strDay = this.getDate(),
strHour = this.getHours(),
strMinute = this.getMinutes(),
strSecond = this.getSeconds();

strMonth = strMonth < 10 ? '0' + strMonth : strMonth;
strDay = strDay < 10 ? '0' + strDay : strDay;
strHour = strHour < 10 ? '0' + strHour : strHour;
strMinute = strMinute < 10 ? '0' + strMinute : strMinute;
strSecond = strSecond < 10 ? '0' + strSecond : strSecond;

if(!format || format.length == 0) {
return strYear + "" + strMonth + "" + strDay + "" + strHour + "" + strMinute + "" + strSecond;
}
if(format.indexOf("yyyy") > -1) {
format = format.replace("yyyy", strYear);
}
if(format.indexOf("MM") > -1) {
format = format.replace("MM", strMonth);
}
if(format.indexOf("dd") > -1) {
format = format.replace("dd", strDay);
}
if(format.indexOf("HH") > -1) {
format = format.replace("HH", strHour);
}
if(format.indexOf("mm") > -1) {
format = format.replace("mm", strMinute);
}
if(format.indexOf("ss") > -1) {
format = format.replace("ss", strSecond);
}
return format;
};
//Date加年数
Date.prototype.addYears = function(years) {
var date = new Date(this.getTime());
date.setFullYear(date.getFullYear() + years);
return date;
};
//Date加月数
Date.prototype.addMonths = function(months) {
var date = new Date(this.getTime());
date.setMonth(date.getMonth() + months);
return date;
};
//Date加天数
Date.prototype.addDays = function(days) {
return new Date(this.getTime() + 1000 * 60 * 60 * 24 * days);
};
//Date加小时
Date.prototype.addHours = function(hours) {
return new Date(this.getTime() + 1000 * 60 * 60 * hours);
};
//Date加分钟
Date.prototype.addMinutes = function(minutes) {
return new Date(this.getTime() + 1000 * 60 * minutes);
};
//Date加秒
Date.prototype.addSeconds = function(seconds) {
return new Date(this.getTime() + 1000 * seconds);
};

//将数字改成千分位格式
Number.prototype.toThousandType = function() {
return(this + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
};
//数字格式化,如:00 000 0.00
Number.prototype.format = function(format) {
var str = this + "";
if(!format || format.length < str.length) return str;
var i = format.length - str.length;
while(i-- > 0) {
str = "0" + str;
}
return str;
};

//数组克隆
Array.prototype.clone = function() {
var s = [];
for(var i = 0; i < this.length; i++) {
var item = $.type(this[i]) == "object" ? $.extend({}, this[i]) : this[i];
s.push(item);
}
return s;
};
//数组元素索引-数据元素是对象
Array.prototype.indexOfObj = function(prop, element) {
var result = -1;
for(var i = 0; i < this.length; i++) {
if(this[i][prop] == element) {
result = i;
break;
}
}
return result;
};
//数组元素索引-数据元素不是对象
Array.prototype.indexOf = function(element) {
var result = -1;
for(var i = 0; i < this.length; i++) {
if(this[i] == element) {
result = i;
break;
}
}
return result;
};
//数组删除元素-数据元素是对象
Array.prototype.removeObj = function(prop, element) {
var index = this.indexOfObj(prop, element);
if(index < 0) return false;
this.splice(index, 1);
return true;
};
//数组删除元素-数据元素不是对象
Array.prototype.remove = function(element) {
var index = this.indexOf(element);
if(index < 0) return false;
this.splice(index, 1);
return true;
};
//查找数组中符合条件的元素
Array.prototype.where = function(condition) {
var ret = [];
for(var i = 0; i < this.length; i++) {
if(condition(this[i])) {
ret.push(this[i]);
}
}
return ret;
};
//查找数组中第一个符合条件的元素
Array.prototype.first = function(condition) {
for(var i = 0; i < this.length; i++) {
if(condition(this[i])) {
return this[i];
}
}
return undefined;
}
//判断数组是是否存在某元素
Array.prototype.contains = function(condition) {
return this.first(condition) != undefined;
}
//从数组中选择元素
Array.prototype.select = function(condition) {
var ret = [];
for(var i = 0; i < this.length; i++) {
ret.push(condition(this[i]));
}
return ret;
}
//向数组中追加数组
Array.prototype.pushArray = function(arry) {
for(var i = 0; i < arry.length; i++) {
this.push(arry[i]);
}
}
//从数组中选择前n个元素
Array.prototype.top = function(count) {
var ret = [];
count = count < this.length ? count : this.length;
for(var i = 0; i < count; i++) {
ret.push(this[i]);
}
return ret;
}
Array.prototype.skip = function(count) {
var ret = this.clone();
count = count < this.length ? count : this.length;
for(var i = 0; i < count; i++) {
ret.splice(0, 1);
}
return ret;
}
//数组里对象根据某个字段进行排序
Array.prototype.compare = function(solp) {
function pai(property) {
return function(obj1, obj2) {
var value1 = obj1[property];
var value2 = obj2[property];
return value1 - value2;
}
}
return this.sort(pai(solp));
}
//返回根据某一个字段和对应的值 查找出这个对象
Array.prototype.indexforObj = function(prop, element) {
var result = -1;
for(var i = 0; i < this.length; i++) {
if(this[i][prop] == element) {
result = this[i];
break;
}
}
return result;
};
//数组取最大值
Array.prototype.max = function() {
// 将数组第一个元素的值赋给max
var max = this[0];
// 使用for 循环从数组第一个值开始做遍历
for(var i = 1; i < this.length; i++) {
// 如果元素当前值大于max,就把这个当前值赋值给max
if(this[i] > max) {
max = this[i];
}
}
// 返回最大的值
return max;
}
//图表rm单位值
function formatUnit(str) {
var result
if(str == "doseRates") {
result = {
"xUnit": "S",
"yUnit": "μSv/h"
}
} else if(str == "neutronDetectorRecords") {
result = {
"xUnit": "道址",
"yUnit": "计数"
}
} else if(str == "gammaDetectorRecords") {
result = {
"xUnit": "道址",
"yUnit": "计数"
}
} else if(str == "spectrumDataUnit") {
result = {
"xUnit": "能量(KeV)",
"yUnit": "计数"
}
} else {
result = {
"xUnit": "S",
"yUnit": "CPS"
}
}
return result;
};
//设备报警率精确到小数6位
function proportion(tatol, alarm) {
var alarmText;
if(alarm == 0) {
alarmText = "0%"
} else {
var propor = tatol / alarm;
switch(true) {
case propor <= 100:
alarmText = (alarm / tatol * 100).toFixed(2) + "%";
break;
case propor <= 1000 && propor > 100:
alarmText = (alarm / tatol * 1000).toFixed(2) + "‰";
break;
case propor > 1000:
alarmText = (alarm / tatol * 10000).toFixed(2) + "‱";
}

}
return alarmText;
};
//根据rm的数组获取长度赋值给x轴
function formatData(arr, key) {
var obj = {};
var arrx = [];
if(key == 'gammaDetectorRecords') { // 伽马能谱
for(var i = 0; i <= 1023; i++) {
arrx.push(i)
}
obj.arrx = arrx;
} else if(key == 'neutronDetectorRecords') { // 中子能谱
for(var j = 0; j <= 15; j++) {
arrx.push(j)
}
obj.arrx = arrx;
} else {
for(var q = 0; q <= arr.length; q++) {
arrx.push(q)
}
obj.arrx = arrx;
}
// obj.arrY = arr;
return obj.arrx
};
//图表设备为0的时候
function noDev(obj) {
let option = {
title: obj.title,
graphic: {
type: 'text',
left: 'center',
top: 'center',
z: 2,
zlevel: 100,
style: {
text: "",
fill: '#b5c7cd',
font: 'bolder .20rem "Microsoft YaHei", sans-serif'
}
},
series: [{
name: '报警率',
type: 'pie',
radius: obj.radius,
center: obj.center,
avoidLabelOverlap: false,
legendHoverLink: false,
hoverAnimation: false,
label: {
normal: {
show: false,
},
emphasis: {
show: false

}
},
labelLine: {
normal: {
show: false
}
},
hoverOffset: 1,
selectedOffset: 1,
data: [{
"name": "",
"value": 0
}],
color: ["#b5c7cd"]
}],
}
return option;
}
//提示框
function message(vue, message, type) {
vue.$notify({
message: message,
position: 'bottom-right',
duration: 2000,
type: type,
customClass: type
});
}

function find(str, cha, num) {
var x = str.indexOf(cha);
for(var i = 0; i < num; i++) { 
x = str.indexOf(cha, x + 1); 
}
return x;
}

function clone(origin) {
return Object.assign({}, origin);
}

js扩展方法(自用)的更多相关文章

  1. JS扩展方法——字符串trim()

    转自:http://www.cnblogs.com/kissdodog/p/3386480.html <head> <title>测试JS扩展方法</title> ...

  2. JS扩展方法

    JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...

  3. JS 扩展方法prototype

    通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法 <script type="text/javascript"> St ...

  4. js扩展方法(数组不重复推入)

    扩展方法是一个很有趣的东西. 使用prototype在原始的类型上添加自己需要的方法.方便在一些常用的情况下使用,比如说字符串的String.trim()清除字符串前后的空格(当然这个方法内置已经有了 ...

  5. Js扩展方法ReplaceAll

    String.prototype.replaceAll = function (reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.i ...

  6. 添加一个js扩展方法

    String.prototype.repeatify=String.prototype.repeatify || function(times){ var str=''; for(var i=0;i& ...

  7. Array js扩展方法 forEach()

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. js一些方法的扩展

    //JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. //下面给出 ...

  9. 扩展JQuery和JS的方法

    //JS的扩展方法: 1 定义类静态方法扩展 2 定义类对象方法扩展            var aClass = function(){} //1 定义这个类的静态方法            aC ...

  10. JS,JQuery的扩展方法

    转 http://blog.csdn.net/tuwen/article/details/11464693 //JS的扩展方法: 1 定义类静态方法扩展 2 定义类对象方法扩展            ...

随机推荐

  1. be动词 系动词 连缀动词 Linking Verb

    be动词 系动词 连缀动词 Linking Verb be 原型 am 第一人称单数形式 is 第三人称单数形式 are 第二人称单数和复数形式 been 过去分词 being 现在分词 was 第一 ...

  2. django(Ajax、自定义分页器、form组件)

    一.Ajax 1 概述 异步提交局部刷新 例子:github注册 动态获取用户名实时的跟后端确认并实时展示到前端(局部刷新) 朝后端发送请求的方式 1.浏览器地址栏直接输入url回车 GET请求 2. ...

  3. tomcat中虚拟主机以及web应用程序的配置

    一:新建虚拟主机 1. 在tomcat里新建文件夹myapps,在里面添加ROOT文件,放入网站的首页文件 新建文本文档,输入你想要的内容我这里的内容是TOM.AI,把文本文档的名字改成index.h ...

  4. 崩溃bug日志总结2

    目录介绍 1.1 java.lang.ClassNotFoundException类找不到异常 1.2 java.util.concurrent.TimeoutException连接超时崩溃 1.3 ...

  5. 记录--@click和@click.native有什么区别,如何阻止第三方组件内部的冒泡

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.@click和@click.native的区别 vue @click.native 原生点击事件: 1,给vue组件绑定事件时候,必须 ...

  6. GIT:斯坦福大学提出应对复杂变换的不变性提升方法 | ICLR 2022

    论文对长尾数据集中的复杂变换不变性进行了研究,发现不变性在很大程度上取决于类别的图片数量,实际上分类器并不能将从大类中学习到的不变性转移到小类中.为此,论文提出了GIT生成模型,从数据集中学习到类无关 ...

  7. KingbaseES V8R6备份恢复系列之 -- system-Id不匹配备份故障

    ​ KingbaseES V8R6备份恢复案例之---system-Id不匹配备份故障 案例说明: 在KingbaseES V8R6执行备份时,在sys_log日志中出现system-id不一致的故障 ...

  8. KingbaseES V8R6 运维案例 --flashback drop table

    一.KingbaseES V8R6 flashback drop table介绍 使用FLASHBACK删除和恢复表 删除表时,数据库不会立即删除与该表关联的空间.数据库重命名表,并将其和任何关联的对 ...

  9. GPTCache使用

    1.概述 传统应用开发中,为了提升系统的查询性能,往往会在系统架构设计中加入缓存机制.在AI大模型领域,虽然功能非常强大,但是使用成本也是非常昂贵的,比如OpenAI的GPT-4按照token的个数来 ...

  10. 24年3月使用VS22编译Telegram Desktop

    0.环境准备,我使用的VS版本是17.9.4,SDK版本是10.0.22621.0,最好不要用太老的版本 1.去下载Python,git,cmake这三个工具,然后在D盘根目录新建TBuild文件夹, ...