学习一些封装好用的方法。持续更新~~~

提示:由于自己技术有限找到一些平常用的到一些方法统一在这里记录持续更新,只为了自己学习


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意外的其它封装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值