js扩展方法(自用)
//字符串转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扩展方法(自用)的更多相关文章
- JS扩展方法——字符串trim()
转自:http://www.cnblogs.com/kissdodog/p/3386480.html <head> <title>测试JS扩展方法</title> ...
- JS扩展方法
JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...
- JS 扩展方法prototype
通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法 <script type="text/javascript"> St ...
- js扩展方法(数组不重复推入)
扩展方法是一个很有趣的东西. 使用prototype在原始的类型上添加自己需要的方法.方便在一些常用的情况下使用,比如说字符串的String.trim()清除字符串前后的空格(当然这个方法内置已经有了 ...
- Js扩展方法ReplaceAll
String.prototype.replaceAll = function (reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.i ...
- 添加一个js扩展方法
String.prototype.repeatify=String.prototype.repeatify || function(times){ var str=''; for(var i=0;i& ...
- Array js扩展方法 forEach()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js一些方法的扩展
//JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. //下面给出 ...
- 扩展JQuery和JS的方法
//JS的扩展方法: 1 定义类静态方法扩展 2 定义类对象方法扩展 var aClass = function(){} //1 定义这个类的静态方法 aC ...
- JS,JQuery的扩展方法
转 http://blog.csdn.net/tuwen/article/details/11464693 //JS的扩展方法: 1 定义类静态方法扩展 2 定义类对象方法扩展 ...
随机推荐
- be动词 系动词 连缀动词 Linking Verb
be动词 系动词 连缀动词 Linking Verb be 原型 am 第一人称单数形式 is 第三人称单数形式 are 第二人称单数和复数形式 been 过去分词 being 现在分词 was 第一 ...
- django(Ajax、自定义分页器、form组件)
一.Ajax 1 概述 异步提交局部刷新 例子:github注册 动态获取用户名实时的跟后端确认并实时展示到前端(局部刷新) 朝后端发送请求的方式 1.浏览器地址栏直接输入url回车 GET请求 2. ...
- tomcat中虚拟主机以及web应用程序的配置
一:新建虚拟主机 1. 在tomcat里新建文件夹myapps,在里面添加ROOT文件,放入网站的首页文件 新建文本文档,输入你想要的内容我这里的内容是TOM.AI,把文本文档的名字改成index.h ...
- 崩溃bug日志总结2
目录介绍 1.1 java.lang.ClassNotFoundException类找不到异常 1.2 java.util.concurrent.TimeoutException连接超时崩溃 1.3 ...
- 记录--@click和@click.native有什么区别,如何阻止第三方组件内部的冒泡
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.@click和@click.native的区别 vue @click.native 原生点击事件: 1,给vue组件绑定事件时候,必须 ...
- GIT:斯坦福大学提出应对复杂变换的不变性提升方法 | ICLR 2022
论文对长尾数据集中的复杂变换不变性进行了研究,发现不变性在很大程度上取决于类别的图片数量,实际上分类器并不能将从大类中学习到的不变性转移到小类中.为此,论文提出了GIT生成模型,从数据集中学习到类无关 ...
- KingbaseES V8R6备份恢复系列之 -- system-Id不匹配备份故障
KingbaseES V8R6备份恢复案例之---system-Id不匹配备份故障 案例说明: 在KingbaseES V8R6执行备份时,在sys_log日志中出现system-id不一致的故障 ...
- KingbaseES V8R6 运维案例 --flashback drop table
一.KingbaseES V8R6 flashback drop table介绍 使用FLASHBACK删除和恢复表 删除表时,数据库不会立即删除与该表关联的空间.数据库重命名表,并将其和任何关联的对 ...
- GPTCache使用
1.概述 传统应用开发中,为了提升系统的查询性能,往往会在系统架构设计中加入缓存机制.在AI大模型领域,虽然功能非常强大,但是使用成本也是非常昂贵的,比如OpenAI的GPT-4按照token的个数来 ...
- 24年3月使用VS22编译Telegram Desktop
0.环境准备,我使用的VS版本是17.9.4,SDK版本是10.0.22621.0,最好不要用太老的版本 1.去下载Python,git,cmake这三个工具,然后在D盘根目录新建TBuild文件夹, ...