前端 js ---- 自定义方法 ---- 处理日常问题
1、日期补0(例:2----->‘02’)
2、删除数组指定的某个元素
3、当前时间
4、数组去重 ([1, 3, 5, 1, 2, 3]====>[1, 3, 5, 2])
5、去除大括号
6、去除双引号
7、js设置 获取 删除 cookie
8、时间戳转换
9、从小到大排序
10、判断json字符串 与 string
11、当鼠标离开导航栏 二级菜单消失
12.定位到页面某一个元素的位置
13.适配页面
14.不足两位小数补0(例:2----->‘2.00’)
15.获取两个日期内的所有日期(例:getDiffDate(“2023-03-31”, “2023-04-05”)====>[“2023-03-31”, “2023-04-01”, “2023-04-02”, “2023-04-03”, “2023-04-04”, “2023-04-05”])
16.日期格式转换(例:“2022-10-1” ===> Sat Oct 01 2022 00:00:00 GMT+0800 (中国标准时间))
// 1、日期补0
function Appendzero(obj) {
if (obj < 10) return "0" + "" + obj;
else return obj;
}
// 2、删除数组指定的某个元素
Array.prototype.indexOf1 = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
Array.prototype.remove1 = function (val) {
var index = this.indexOf1(val);
if (index > -1) {
this.splice(index, 1);
}
};
//3、当前时间
<div id="showTime"></div>
function time() {
var days = new Array("日", "一", "二", "三", "四", "五", "六");
dt = new Date();
var y = dt.getFullYear(); //获取四位数年
var m = dt.getMonth() + 1; //获取月份
var d = dt.getDate(); //获取日期
var h = dt.getHours(); //获取时
var i = dt.getMinutes(); //获取分
var s = dt.getSeconds(); //获取秒
var x = dt.getDay(); //获取星期
document.getElementById("showTime").innerHTML =
Appendzero(y) +
"年" +
Appendzero(m) +
"月" +
Appendzero(d) +
"日" +
" " +
Appendzero(h) +
":" +
Appendzero(i) +
":" +
Appendzero(s) +
" " +
"星期" +
days[x]; //进行组合
setTimeout("time()", 1000); //设定定时器,循环运行
}
time();
// 4、数组去重
第一种方法:
function ArrayToHeavy(arr) {
//过滤掉原数组中重复的数字,返回新的数组
return arr.filter((item, index) => {
//遍历出数组中数字第一次出现的下标,与数字所在数组的下标相比较,
//为true就是第一次出现
return arr.indexOf(item) === index;
});
}
第二种方法:
function ArrayToHeavy2(arr){
return Array.from(new Set(arr))
}
// 5、去除大括号
function removeBlock(str) {
if (str) {
var reg = /^\{/gi
var reg2 = /\}$/gi
str = str.replace(reg, '')
str = str.replace(reg2, '')
return str
} else {
return str
}
}
// 6、去除双引号
var a = {"1":"1","2":"2"}
a1=JSON.stringify(a).replace(/\"/g, "")
console.log(a1) //"{1:1,2:2}"
//7、js设置 获取 删除 cookie
// 1、设置cookie
// function setCookie(name, value){
// var argv = setCookie.arguments;
// var argc = setCookie.arguments.length;
// var expires = (argc > 2) ? argv[2] : null;
// if(expires!=null){
// var LargeExpDate = new Date ();
// LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
// }
// document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));
// }
// 2、设置cookie
function setCookie(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*30);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
// 获取cookie
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
// 删除cookie
function deleteCookie(name){
var expdate = new Date();
expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
setCookie(name, "", expdate);
}
//8、时间戳转换 1617701413000 nS为10位
let nS = 1617701413
function getLocalTime(nS) {
let time = new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
console.log('time :>> ', time);
return time
}
//9、从小到大排序
let arrSort=[{order:2},{order:1},{order:4},{order:5},{order:3},{order:7},{order:6}]
function sort(arrSort){
// if(!arrSort) return
var i,j,temp;
for(i=0;i<arrSort.length-1;i++){
for(j=arrSort.length-1;j>i;j--){
if(parseInt(arrSort[j].order) <parseInt(arrSort[j-1].order)){
temp = arrSort[j-1];
arrSort[j-1]=arrSort[j];
arrSort[j]=temp;
}
}
}
return arrSort
}
sort(arrSort)
//10、判断json字符串 与 string
isJsonObj(str) {
try {
if (typeof JSON.parse(str) === 'object') {
return true
}
} catch (e) {
}
return false
}
//11、当鼠标离开导航栏 二级菜单消失(关键点:鼠标离开一级菜单最外面壳子之后,二级菜单隐藏)
$('.L233_Ul_first').mouseleave(function(){
$('.L233_Ul_second').hide()
})
//12.定位到页面某一个元素的位置
function abilityExperience(){
let nlty = $("#nlty").offset()
$('body,html').animate({
scrollTop: nlty.top
}, 200);
}
//13.适配页面
$(function () {
function resize() {
var windowW = $(window).width();
var initWH = 1340 / 820;
//1440尺寸下都用1280
if (windowW <= 1440) {
windowW = 1280;
} else {
}
$("body,html").css({
fontSize: windowW * 12 / 1280 + 'px'
});
}
resize();
$(window).bind("resize", resize)
});
// 14.不足两位小数补0
function fillZero(num) {
if(typeof(num) == 'number'){ // 判断是否为数字类型 数字类型自动 舍0
num = num.toString() // 先转成 字符串类型
if(num.indexOf(".") != -1){ // 判断 有无小数点 0 表示 有小数点 -1 表示没有小数点
let b = num.split('.') // 根据小数点 转换字符串为数组
if(b[1].length == 1){ // 判断 有几位小数 如果有一位 加一个0
b = b.join('.')
b += '0'
num = b
}
}else {
num += '.00'
}
}else if(typeof(num) == 'string'){ // 同理
if(num.indexOf(".") != -1){
let b = num.split('.')
if(b[1].length == 1){
b = b.join('.')
b += '0'
num = b
}
}else {
num += '.00'
}
}
return num;
}
// 15.获取两个日期内的所有日期
function getDiffDate(start, end) {
const startTime = new Date(start);
const endTime = new Date(end);
const dateArr = [];
while ((endTime.getTime() + 24 * 3600000 - startTime.getTime()) > 0) {
const year = startTime.getFullYear();
const month = (startTime.getMonth() + 1).toString().length === 1 ? '0' + (parseInt((startTime.getMonth()+1).toString(), 10)) : (startTime.getMonth()+1);
const day = startTime.getDate().toString().length === 1 ? '0' + startTime.getDate() : startTime.getDate();
dateArr.push(year + '-' + month + '-' + day);
startTime.setDate(startTime.getDate() + 1);
}
return dateArr;
}
getDiffDate("2022-10-1", "2023-1-15")
// 16.日期格式转换"2022-10-1" ===> Sat Oct 01 2022 00:00:00 GMT+0800 (中国标准时间)
function getDate(datestr) {
const temp = datestr.split('-');
if (temp[1] === '01') {
temp[0] = parseInt(temp[0], 10) - 1;
temp[1] = '12';
} else {
temp[1] = parseInt(temp[1], 10) - 1;
}
const date = new Date(temp[0], temp[1], temp[2]);
return date;
}
目前就是以上这些,后期遇到其他的,我会持续更新,希望对各位刚入行的朋友们有用!!!