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 定义类对象方法扩展 ...
随机推荐
- 解决windows11远程连接阿里云Centos7
本地连接CentOs7时报错 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 网上大部分说的是去修改 vim /etc/ss ...
- Cordon、Drain、污点与容忍度、亲和性与反亲和性
在Kubernetes(K8s)中,Cordon.Drain.污点与容忍度.亲和性与反亲和性都是与资源管理和调度相关的概念.下面是对这些概念的详细解释: Cordon(封锁.警戒): Cordon是一 ...
- matlab在mac下无写权限解决方法和思路
问题出在哪儿? 做音频算法很多年,使用matlab的历史也是十年多了,可是在mac下使用matlab倒是第一次,基本熟悉了之后,顺杆丝滑啊.要比在windows下好用多了,不过,中间遇到了一些问题 ...
- Go | Gin 解决跨域问题跨域配置
Go | Gin 解决跨域问题跨域配置 目录 一.关于跨域解决方案 二.使用步骤 1. 编写一个中间件 2. 使用 3. 注意事项 一.关于跨域解决方案 关于跨域的解决方法,大部分可以分为 2 种 n ...
- JavaFx 圆形头像实现
原文:JavaFx 圆形头像实现 - Stars-One的杂货小窝 本文基于TornadoFx框架进行编写,封装工具代码是kotlin版本 圆形头像框组件封装成了stars-one/common-co ...
- dotNet8 全局异常处理
前言 异常的处理在我们应用程序中是至关重要的,在 dotNet 中有很多异常处理的机制,比如MVC的异常筛选器, 管道中间件定义try catch捕获异常处理亦或者第三方的解决方案Hellang.Mi ...
- C++ Qt开发:QUdpSocket实现组播通信
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUd ...
- JavaScript知识总结 终结篇--面向对象,垃圾回收与内存泄漏
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.面向对象 一般使用字面量的形式直接创建对象,但是这种创建方式对于创建大量相似对象的时候,会产生大量的重复代码.但 js和一般的面向对象 ...
- Windows中控制台(cmd)模式下运行程序卡死/挂起现象解决方案(快速编辑模式)
最近在运行编译好的exe文件时,发现了一个现象,就是通过cmd运行exe文件或者双击执行运行exe文件,偶尔会出现程序没有执行的情况.最开始发现这个现象时,还以为是程序出现了什么Bug.后面经过网上查 ...
- LOTO任意波形发生器SIG82模拟输出继电器吸合断开的信号波形用于算法调试
LOTO任意波形发生器SIG82模拟输出继电器吸合断开的信号波形用于算法调试 继电器吸合的电流变化过程是如图这样的波形,0到2的时间大约为17毫秒,2到3的时间大约38毫秒. 批量继电器产品吸合是否满 ...