提示:由于自己技术有限找到一些平常用的到一些方法统一在这里记录持续更新,只为了自己学习
封装的适用的方法
js
这里有最常用的js逐步更新肯定能用的到的
一、封装异步加载资源的方法
//url填写引入的路径
//type引入的css||js
function loadExternalResource(url, type) {
return new Promise((resolve, reject) => {
let tag;
if (type === "css") {
tag = document.createElement("link");
tag.rel = "stylesheet";
tag.href = url;
}
else if (type === "js") {
tag = document.createElement("script");
tag.setAttribute("type", "text/javascript");
tag.src = url;
}
if (tag) {
tag.onload = () => resolve(url);
tag.onerror = () => reject(url);
document.head.appendChild(tag);
}
});
}
二、从url中查询到指定参数值
//name传的在url上拼接的键
//defaultValue如果找不到键返回信息否则返回null
function p(name, defaultValue){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == name){return pair[1];}
}
return(defaultValue == undefined ? null : defaultValue);
}
三、计算加减乘除失精度
//加法
function add(arg1, arg2) {
let r1, r2, m;
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
m = Math.pow(10, Math.max(r1, r2));
return (arg1 * m + arg2 * m) / m
}
//减法
function sub(arg1, arg2) {
let r1, r2, m, n;
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
m = Math.pow(10, Math.max(r1, r2));
n = (r1 >= r2) ? r1 : r2;
return Number(((arg1 * m - arg2 * m) / m).toFixed(n));
}
//乘法
function mcl(num1, num2) {
let m = 0, s1 = num1.toString(), s2 = num2.toString();
try { m += s1.split(".")[1].length } catch (e) { }
try { m += s2.split(".")[1].length } catch (e) { }
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}
//除法
function division(num1, num2) {
let t1, t2, r1, r2;
try {
t1 = num1.toString().split('.')[1].length;
} catch (e) {
t1 = 0;
}
try {
t2 = num2.toString().split(".")[1].length;
} catch (e) {
t2 = 0;
}
r1 = Number(num1.toString().replace(".", ""));
r2 = Number(num2.toString().replace(".", ""));
return (r1 / r2) * Math.pow(10, t2 - t1);
}
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
四、将时间戳转化为指定时间格式(10位或13位)
function forDate(inputTime, way) {
if(inputTime.toString().length==10){
inputTime=inputTime*1000
}
var date = new Date(inputTime);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
var ms = date.getMilliseconds();
way = way || 1;
// way == 1 年月日
if(way === 1) {
return y + '-' + m + '-' + d;
}
// way == 1 年月日时分秒
if(way === 2){
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}
// way == 具体格式 标准格式: yyyy-MM-dd HH:mm:ss
if(typeof way == 'string') {
return way.replace("yyyy", y).replace("MM", m).replace("dd", d).replace("HH", h).replace("mm", minute).replace("ss", second).replace("ms", ms);
}
return y + '-' + m + '-' + d;
};
五、获取数组中指定值的一项,以及删除数组中的某一项
//arr一个数组
//prop数组中对象里那个键
//value数组中的值与value匹配
//返回对象格式找到数组那一项
function arrayGet(arr, prop, value){
for (var i = 0; i < arr.length; i++) {
if(arr[i][prop] == value){
return arr[i];
}
}
return null;
}
//arr一个数组
//prop数组中对象里那个键
//value数组中的值与value匹配
// 从数组里获取数据,返回数组
function getArrayField(arr, prop, value){
let list=[]
for (var i = 0; i < arr.length; i++) {
if(arr[i][prop] == value){
list.push(arr[i]) ;
}
}
return list;
}
// 从数组删除指定记录
function arrayDelete(arr, item){
if(item instanceof Array) {
for (let i = 0; i < item.length; i++) {
let ite = item[i];
let index = arr.indexOf(ite);
if (index > -1) {
arr.splice(index, 1);
}
}
} else {
var index = arr.indexOf(item);
if (index > -1) {
arr.splice(index, 1);
}
}
}
//arr一个数组
//id数组中想要删除id的值
// 从数组删除指定id的记录
function arrayDeleteById(arr, id){
var item = getArrayField(arr, 'id', id);
arrayDelete(arr, item);
}
六、判断年月日是否是有效期
function isdate (intYear, intMonth, intDay) {
if (isNaN(intYear) || isNaN(intMonth) || isNaN(intDay)) return false;
if (intMonth > 12 || intMonth < 1) return false;
if (intDay < 1 || intDay > 31) return false;
if (
(intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) &&
intDay > 30
)
return false;
if (intMonth == 2) {
if (intDay > 29) return false;
if (
((intYear % 100 == 0 && intYear % 400 != 0) || intYear % 4 != 0) &&
intDay > 28
)
return false;
}
return true;
}
总结
后期回继续补充除了js意外的其它封装