前端实用技能
- 焦点聚焦
import Vue from 'vue'
// 插件对象(必须有 install 方法, 才可以注入到 Vue.use 中)
export default {install () {Vue.directive('fofo', {inserted (el) {el = el.querySelector('input')el.focus()}})}
}
- 格式化日期格式
export const formatDate = (time) => {// 将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 return time.replace(/\-/g, "/");
}
- 是否在数组内
export const inArray = (search, array) => {for (var i in array) {if (array[i] == search) return true}return false
}
- 日期转换
export const dateFormat = (fmt, date) => {const opt = {"Y+": date.getFullYear().toString(), // 年"m+": (date.getMonth() + 1).toString(), // 月"d+": date.getDate().toString(), // 日"H+": date.getHours().toString(), // 时"M+": date.getMinutes().toString(), // 分"S+": date.getSeconds().toString() // 秒// 有其他格式化字符需求可以继续添加,必须转化成字符串};let retfor (let k in opt) {ret = new RegExp("(" + k + ")").exec(fmt)if (ret) {fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))};};return fmt
}
egdateFormat('YYYY-mm-dd HH:MM:SS', new Date()) ==> 2020-01-01 08:00:00
- 判断是否为空对象
export const isEmptyObject = (object) => {return Object.keys(object).length === 0
}
- 判断是否为对象
export const isObject = (object) => {return Object.prototype.toString.call(object) === '[object Object]'
}
- 判断是否为数组
export const isArray = (array) => {return Object.prototype.toString.call(array) === '[object Array]'
}
- 判断是否为空
export const isEmpty = (value) => {if (isArray(value)) {return value.length === 0}if (isObject(value)) {return isEmptyObject(value)}return !value
}
- 对象深拷贝
export const cloneObj = (obj) => {let newObj = obj.constructor === Array ? [] : {};if (typeof obj !== 'object') {return;}for (let i in obj) {newObj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i];}return newObj
}
- 节流函数
export function throttle(fn, delay = 100) {// 首先设定一个变量,在没有执行我们的定时器时为nullvar timer = nullreturn function() {// 当我们发现这个定时器存在时,则表示定时器已经在运行中,需要返回if (timer) returntimer = setTimeout(() => {fn.apply(this, arguments)timer = null}, delay)}
- 防抖函数
export function debounce(fn, delay) {let timerreturn function() {const that = thisconst _args = arguments // 存一下传入的参数if (timer) {clearTimeout(timer)}timer = setTimeout(function() {fn.apply(that, _args)}, delay)}
}
- 姓名隐藏,只展示第一位,其余替换为 *
export function getHiddenName(data){if (!data) return ''const surname = data.substr(0, 1)const star = '*'.repeat(data.length - 1)return surname + star
}
- 详细地址隐藏数字包含中文数字,替换为 *
export function getHiddenDetailAddress(data){const chineseNumbers = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']if (!data || data.length === 0){return ''}let tempResult = data.replace((/\d/g),'*')let result = ''for(let i=0;i<tempResult.length;i++){if (chineseNumbers.includes(tempResult[i])){result += '*'}else {result += tempResult[i]}}return result
}
- 计算2个日期相差的天数,不包含今天,如:2024-09-13到2016-09-15,相差2天
function dateDiff(startDate, endDate) {return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24) // 把相差的毫秒数转换为天数
}
- 计算2个日期相差的天数,包含今天,如:2024-09-13到2016-09-15,相差3天
function dateDiff(startDate, endDate) {return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24) + 1 // 把相差的毫秒数转换为天数
}
相关文章:

前端实用技能
焦点聚焦 import Vue from vue // 插件对象(必须有 install 方法, 才可以注入到 Vue.use 中) export default {install () {Vue.directive(fofo, {inserted (el) {el el.querySelector(input)el.focus()}})} }格式化日期格式 export const formatDate (time) > {// 将xx…...

Android LiveData 数据倒灌
相关类型的文章很多,这里只做个人总结和其余的方法推荐 1.什么是数据倒灌? 所谓的“数据倒灌”:其实是类似粘性广播那样,当新的观察者开始注册观察时,会把上次发的最后一次的历史数据传递给当前注册的观察者。 一方…...

umi项目中使用mockj生成数据模拟请求调用
Mock.js简介 Mock.js 是一个轻量级且无依赖的JavaScript库,用于生成模拟数据。它可以帮助开发者在前端开发过程中模拟后端API接口,以便进行快速原型设计和测试。Mock.js 提供了丰富的API来模拟各种类型的数据,如字符串、数字、日期、数组等。…...

事件【JavaScript】
1. 事件 事件是用户或浏览器动作的表示,JavaScript 中的一切交互都是通过事件来处理的。 2. 事件冒泡(Event Bubbling) 事件冒泡是指事件从最具体的元素(即触发事件的元素)开始触发,然后逐级向上传播到较…...

【Linux】Linux基本命令
目录 文件和目录操作: ls cd pwd cp mv rm mkdir rmdir touch clear history which/whereis 文件查看和编辑: cat less head tail vi 或 vim sz/rz echo 系统信息和管理: su uname hostname df free top ps ki…...

微软宣称其新工具可纠正人工智能幻觉 但专家依然对此表示怀疑
人工智能经常胡言乱语,微软现在说它有办法解决这个问题,但我们有理由对此持怀疑态度。微软今天发布了一项名为"更正"(Correction)的服务,它可以自动修改人工智能生成的与事实不符的文本。Correction 首先会标…...

实战OpenCV之图像滤波
基础入门 图像滤波是数字图像处理中一种非常重要的技术,主要用于图像噪声去除、图像平滑、突出图像特征,或者进行图像风格的转换。它通过数学运算对图像中的像素值进行修改,以达到特定的处理目的。图像滤波可以分为两大类,分别为:线性滤波、非线性滤波。 线性滤波器通过一…...

AI学习指南深度学习篇-Adadelta的Python实践
AI学习指南深度学习篇-Adadelta的Python实践 深度学习是人工智能领域的一个重要分支,近年来在各个领域都取得了显著的成就。在深度学习的模型训练中,优化算法起着至关重要的作用,其中Adadelta是一种常用的优化算法之一。本篇博客将使用Pytho…...

go webapi上传文件 部属到linux
go厉害的地方,linux服务器上无需安装任何依赖就可以运行,大赞! 一、编译 #在Goland中cmd中执行 go env -w GOARCHamd64 go env -w GOOSlinux go build main.go # 切换回来 否则无法运行 go env -w GOOSwindows go run main.go 拷贝到linux服…...

接口加解密及数据加解密
目录 一、 加解密方式介绍 1.1 Hash算法加密 1.2. 对称加密 1.3 非对称加密 二、 我们要讲什么? 三、 接口加解密 四、 数据加解密 一、 加解密方式介绍 所有的加密方式我们可以分为三类:对称加密、非对称加密、Hash算法加密。 算法内部的具体实现…...

开创远程就可以监测宠物健康新篇章
在宠物健康监测的新纪元,智能听诊器凭借其先进技术,正逐步改变我们对宠物健康监护的传统认知。这不仅是一款监测工具,而是宠物健康管理的得力助手,为宠物主人和兽医提供前所未有的洞察力和便捷性。 深度学习算法:智能…...

二叉树的基本概念(上)
文章目录 🍊自我介绍🍊简介🍊树的定义树中的专业术语树的分类 🍊二叉树的特性讲解 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介…...

aws s3 存储桶 前端组件上传简单案例
写一个vue3 上传aws oss存储的案例 使用到的插件 npm install aws-sdk/client-s3 注意事项 : 1. 本地调试 , 需要设置在官网设置跨域 必须!!! 否则调试不了 ,前端代理是不起作用的 ,因为是插…...

【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)
本文项目编号 T 049 ,文末自助获取源码 \color{red}{T049,文末自助获取源码} T049,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

python爬虫初体验(四)—— 百度文库PPT的爬取
文章目录 1. 安装包2. 相关代码3. 说明4. 注意事项5. 扩展功能5.1 多页面下载5.2 输入地址下载 在Python 2中编写一个爬虫来大量下载图片,可以使用requests库来发送HTTP请求,并使用BeautifulSoup来解析HTML页面。此外,可以使用urllib2库来下载…...

下水道内缺陷识别检测数据集 yolo数据集 共2300张
下水道内缺陷识别检测数据集 yolo数据集 共2300张 下水道内部缺陷识别数据集(Sewer Interior Defect Recognition Dataset, SIDRD) 摘要 SIDRD 是一个专门针对下水道内部缺陷识别的数据集,旨在为城市基础设施维护和管理提供一个标准化的训练…...

年轻用户对Facebook的使用趋势分析
在社交媒体的蓬勃发展中,Facebook作为全球最大的社交平台之一,尽管面临着来自新兴平台的竞争,仍然在年轻用户中扮演着重要角色。然而,年轻用户对Facebook的使用方式和趋势却在不断变化。本文将探讨年轻用户对Facebook的使用趋势&a…...

EasyCVR全方位安全守护智慧电厂:构建高效视频监控系统优势分析
随着信息技术的飞速发展和数字化时代的到来,电厂作为能源供应的重要枢纽,其安全性和管理效率成为社会各界关注的焦点。为了满足电厂对高效、智能、可靠视频监控系统的需求,基于EasyCVR平台建设的电厂视频监控系统应运而生。 一、系统构成 基…...

基于深度学习的情感生成与交互
基于深度学习的情感生成与交互是一个新兴的研究领域,旨在通过深度学习技术生成具有情感的反应,以增强人机交互的自然性和有效性。该技术涉及情感识别、自然语言处理、计算机视觉等多个领域,并在多个应用场景中展现出潜力。 情感生成的主要方…...

JavaScript匿名函数
引言 JavaScript是一种广泛使用的脚本语言,用于Web开发和其他领域。在JavaScript中,函数是非常重要的组成部分,它们允许开发者组织代码、复用代码以及执行特定的任务。本文将探讨一种特殊的函数类型——匿名函数,并介绍如何使用它…...

线性判别分析(LDA)中计算两个类的中心点在投影方向w上的投影示例
通过一个具体的例子,详细说明 w T μ 0 w^T \mu_0 wTμ0 和 w T μ 1 w^T \mu_1 wTμ1 如何表示两个类的中心点在投影方向 w w w 上的投影。 假设: 我们有两个类的数据集,均值向量 μ 0 \mu_0 μ0 和 μ 1 \mu_1 μ1ÿ…...

前端知识——标签知识
1.p段落标签 ——一个p标签表示一个段落 单独占一行 >p标签里面不可以嵌套其它的块级标签(div h1~h6 p等) 会导致浏览器自动分裂成两个标签 不规范的写法 >但是可以包裹span标签 2.span标签 ——包裹文字标签 可以和span一行显示 3.文本格式化标签 ——给…...

使用Docker和cpolar在Linux服务器上搭建DashDot监控面板
使用Docker和cpolar在Linux服务器上搭建DashDot监控面板 前言环境准备安装Docker下载Dashdot镜像 部署DashDot应用本地访问DashDot服务安装cpolar内网穿透固定DashDot公网地址结语 前言 在这个数字化飞速发展的时代,服务器作为支撑各种应用和服务的基础设施…...

解决docker拉取镜像报错
报错信息如下: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)网上试了很多方式,有的需要配置DNS解析&…...

C++之STL—deque容器
双端数组 区别于 vector (单端数组), 构造函数 注意:读取数据时,const修饰保证函数内只能读取,不能修改数据 void print(const deque<int>& deq) {for (deque<int>::const iterator it deq.begin(); it ! deq.e…...

leveldb前缀匹配查找Seek
个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 参考:https://github.com/google/leveldb/blob/main/include/leveldb/db.h 参考:百度AI 1. 背景 最近偶然发现了,leveldb前缀匹配查找的功能。 之前没有从这个角度去想过See…...

【自动驾驶】ros如何隔绝局域网内其他电脑播包
1.问题 可能碰到自己播包的时候,别人播包的传到我们电脑上,导致无法分析问题,或者出现一些奇怪的现象。 2.解决 export ROS_LOCALHOST_ONLY1 在终端加上这句话,或者在~/.bashrc中添加,通过source ~/.bashrc使其生…...

MySQL程序
目录 MySQL程序 常用的MySQL的程序 mysqld程序 mysql客户端 客户端命令的常用的选项 配置文件 配置文件语法 MySQL客户端命令 编辑 .sql 文件中执行SQL语句 mysqlcheck (表维护程序) Mysqldump(数据库备份程序) mysql…...

吉林省自闭症寄宿学校:提供个性化培养方案
在吉林省的怀抱中,隐藏着一片温馨而特殊的天地——星贝育园自闭症儿童寄宿制学校。这里,不是简单的教育场所,而是无数自闭症儿童梦想启航的港湾,是他们感受爱、学习成长、绽放自我光芒的温馨家园。 自闭症,一个逐渐被…...

Java基础 — Java 虚拟机(上篇)
该文章属于Java进阶部分的JVM入门,本章讲述了JVM的历史、Java源代码到机器码的过程以及 Class字节码文件的内部结构等。 了解了这篇文章,能让你深入地了解JVM知识,保证在短时间内掌握JVM! JVM 入门教程(上篇࿰…...