yy-baseutils
v1.3.4
Published
<!-- * @Author: your name * @Date: 2021-12-23 21:13:26 * @LastEditTime: 2022-03-07 21:25:34 * @LastEditors: Please set LastEditors * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE *
Downloads
5
Readme
myutils
go
npm i yy-baseutils --save
import yyUtils from 'yy-baseutils'
import 'yy-baseutils/style/index.less'
import {arrayUtils} from 'yy-baseutils'
Array arrayUtils
数组去重 setUnique(array) adjacentUnique(arr) indexOfUnique(arr) sortUnique(arr)
数组对象去重 arrayObjectLoopUnique(arr, u_key) arrayObjectKeyUnique(arr, u_key) arrayObjectMapUnique(arr, u_key)
一维数组二维化 arrayTwo(arrayFirst) convert(arr)
多维数组一维化 arrayOneFlatten(arr)
数组对象深拷贝 deepClone(source)
数组对象 筛选出相同keyword的数据 getParamByKeyword(arry, keyword, index)
检查数组中当前元素出现次数 countOccurrences(arr, value)
扁平数组转树形 arrayToTree(arr, rootNode, pid, id)
查找数组中最接近的元素 findCloseNum(arr, num)
Object objectUtils
深拷贝对象 cloneObj(obj)
对象合并 assiginObj(target = {}, sources = {})
dom domUtils
检查一个元素是否是另一个元素的后代 isDescendant
检查是否支持触摸事件 touchSupported
检查用户是否滚动到页面底部 isAtBottom
获取元素的所有兄弟 siblings
获取元素相对于文档的位置 getPosition
在另一个元素之后插入一个元素 insertAfter
在另一个元素之前插入一个元素 insertBefore
替换一个元素 replace
滚动到页面顶部 goToTop
math mathUtils
计算2维平面坐标距离 getDistance(start, end)
计算由两点定义的直线的角度 弧度 radiansAngle 度数 degreesAngle
计算两个数字之间的线性插值 lerp
计算两点之间的中点 midpoint
检查点是否在矩形内 isInside
是否包含 contains
是否重叠 overlaps
将度数转换为弧度 degsToRads
将弧度转换为度数 radsToDegs
将数字四舍五入到给定值的最接近的倍数 roundNearest
Help helpUtils
判断是否PC端 isPC()
验证非法字符 checkStr(strTest)
获取浏览器类型 getBrowserType()
判断是否微信 isWeixin()
判断是否对象或者数组 isObjArr(value)
校验只要是数字(包含正负整数,0以及正负浮点数)就返回true isNumber(val)
isString(val)
isArrany(val)
isObject(val)
是否空对象 isObjectEmpty(obj)
对象是否相等 isObjectValueEqual(a, b)
是否是一个函数 isFunction
是否异步函数 isAsyncFunction
是否正数 isPositive
是否负数 isNegative
Date dateUtils
(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
(new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
UTF转北京时间 UTC2BeiJing(timeUTC)
获取当前时间 getNowFormatDate("/") 2018/12/13 16:48:16
比较两个日期 compare(a, b)
检查日期是否是周末 isWeekend
检查日期是否为工作日 isWeekday
检查日期是否在两个日期之间 isBetween(date, min, max)
检查一年是否为闰年 isLeapYear
Numbel numbelUtils
随机整数 randomNum(min, max)
随机数 getRandomNumberBits(num)
生成从minNum到maxNum的随机数 decimalNum如果生成的是带有小数的随机数,则指定随机数的小数点后的位数 randomNums(maxNum, minNum, decimalNum)
Router routerUtils
获取指定的URL参数值 getParam(paramName)
兼容地址栏带# getArgument(_arg)
打开新页面 open_to_page(url, name, param)
跳转页面 page_to_other(url, name, param)
拆分url方法返回拆分对象 urlSeparate(url)
Tool toolUtils
节流原理:在一定时间内,只能触发一次 throttle(func, wait = 500, immediate = true)
防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数 debounce(func, wait = 500, immediate = false)
浏览器全屏 fullscreen()
退出浏览器全屏 exitFullscreen()
post方式下载文件流 downloadFilePostStream(apiStr, option)
根据img大小和容器的宽高比,设置img的css setImgCssByBox(img, num)
canvas转DataURL canvasToDataURL(canvas, type = 'image/png', quality = 0.8)
图片转画布 ImageToCanvas(image)
画布转图片 CanvasToImage(canvas, type = 'image/png', quality = 0.8)
Blob转DataURL blobToDataURL(blob)
文件转DataURL fileToDataURL(file)
id生成器 createIdObject() 参考 Nano ID
Model modelsUtils
计算3维平面坐标距离 get3DDistance(v1, v2)
飞行定位 flyTo(camera, controls, TWEEN, target, duration, callBack, offset = 4) renderer中需要更新TWEEN.update();
方向点 createArrow(origin,dir,length = 6,hex = 0xffff00,headLength = 4,headWidth = 2)
屏幕坐标转设备坐标 screenToDevice(x, y, clientWidth, clientHeight, target)
设备坐标转屏幕坐标 deviceToScreen(x, y, clientWidth, clientHeight, target)
通过camera计算出视锥 computeFrustumFromCamera(camera) isObjectBehindCamera(el, camera)
是否可见 isObjectVisible(el, camera, raycaster, occlude)
检查对象是否在摄像机视野范围内 true 存在 false 不存在 checkObjectExistIsCamera(object, camera)
三维坐标转屏幕坐标 getScreenPos(object, camera)
是否相交 WhetherToIntersect(object1, object2)
相机平滑切换视角 animateCamera(current1,target1,current2,target2,TWEEN,controls)
..................
Tree treeUtils
Router routerUtils
.....比较忙,下次在更新....
Compiles and minifies for production