对象或数组的深拷贝
/** * 对象或数组的深拷贝 * @param {*} cloneObj 被克隆的对象 * @param {*} targetObj 克隆的目标对象 * @param {*} isOverride 若属性重复,是否覆盖被克隆对象的属性 */ function deepClone(cloneObj, targetObj, isOverride = true) { const _toString = Object.prototype.toString if (_toString.call(cloneObj) !== '[object Array]' && _toString.call(cloneObj) !== '[object Object]') { return cloneObj } var cloneTarget = _toString.call(cloneObj) === '[object Array]' "htmlcode">//精准判断数据类型 function getVerifyDataTypes() { const types = ["String", "Number", "Boolean", "Null", "Undefined", "Function", "Object", "Array", "Date", "Error", "RegExp", "Symbol", "Map", "Set"] let Type = {} // 示例用法:Type.isString('javascript') for (let i = 0; i < types.length; i++) { Type[`is${types[i]}`] = obj => Object.prototype.toString.call(obj) === `[object ${types[i]}]` } // 判断字符串是否为json格式 Type.isJsonStr = str => { if (typeof str == 'string') { try { let obj = JSON.parse(str); if (obj && typeof obj == 'object') { return true; } return false; } catch (e) { return false; } } else { return false; } } return Type }日期格式化
/** * 日期格式化 * @param {*} date 日期对象 * @param {*} beforeHyphen 年月日连字符 * @param {*} afterHyphen 时分秒连字符 */ function formatDate(date = new Date(), beforeHyphen = '-', afterHyphen = ':') { const formatNumber = n => { n = n.toString() return n[1] "htmlcode">/** * 把时间戳转换为剩余的天、时、分、秒,一般应用于倒计时场景中 * @param {*} timestamp 时间戳 */ function converTimestamp(timestamp) { const formatNumber = n => { n = n.toString() return n[1] "htmlcode">// 从数组中随机取出一项 function getRandomItemByArray(items) { return items[Math.floor(Math.random() * items.length)]; }将有父子关系的数组转换成树形结构数据
let data = [ { parentId: 0, id: 1, value: 'xxx' }, { parentId: 1, id: 3, value: 'xxx' }, { parentId: 4, id: 6, value: 'xxx' }, { parentId: 3, id: 5, value: 'xxx' }, { parentId: 2, id: 4, value: 'xxx' }, { parentId: 1, id: 2, value: 'xxx' }, ] // 转换为树形Array结构 function toTreeAry(arr, pId = 0) { return arr .filter(({ parentId }) => parentId === pId) .map(a => ({ ...a, children: toTreeAry(arr.filter(({ parentId }) => parentId !== pId), a.id) })) } // 转换为树形Object结构 function toTreeObj(arr, pId = 0) { let res = {} arr.filter(({ parentId }) => parentId === pId) .forEach(a => { res[a.id] = { ...a, children: toTreeObj(arr.filter(({ parentId }) => parentId !== pId), a.id) } }) return res } console.log(toTreeAry(data)) console.log(toTreeObj(data))生成随机字符串
// 随机字符串 const randomStr = () => { return new Date().getTime() + '-' + Math.random().toString(36).substr(2) }过滤html标签
// 过滤html标签 const filterHTMLTag = (str) => { str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML Tag str = str.replace(/[|]*\n/, '') //去除行尾空格 str = str.replace(/&npsp;/ig, ''); //去掉npsp return str; }以上就是JavaScript常用工具函数库汇总的详细内容,更多关于JavaScript工具函数库的资料请关注其它相关文章!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“JavaScript常用工具函数库汇总”评论...
更新动态
2024年11月15日
2024年11月15日
- 群星-时尚慢摇DJ舞曲《发烧车载中文天碟-调情》非卖品[WAV]
- 潘美辰.2008-全新重声大碟(出道20年精选纪念版)【倍特音乐】【WAV+CUE】
- 罗时丰.2002-唱歌的人(2011再生版)【贝特音乐】【WAV+CUE】
- 罗时丰.2003-唱歌的人台语精选+新歌【贝特音乐】【WAV+CUE】
- 999PUNKSTA《情绪数码故障》[Hi-Res][24bit 48kHz][FLAC/分轨][301.83MB]
- HOYO-MiX《原神-珍珠之歌4 游戏音乐》[320K/MP3][289.48MB]
- 陈崎凡《CHEN》[320K/MP3][81.13MB]
- skt都在哪一年夺冠 英雄联盟skt夺冠赛季介绍
- 炉石传说抢先体验乱斗什么时候结束 深暗领域体验乱斗结束时间
- 炉石传说抢先乱斗卡组有什么 深暗领域抢先体验乱斗卡组推荐
- 荣耀手机腕上最佳搭档 荣耀手表5首销开启
- 雷克沙ARES 6000 C28战神之翼 AMD 9800X3D超强搭档
- 咪咕快游感恩同游,超值回馈尽在咪咕咪粉节!
- 陈崎凡《CHEN》[FLAC/分轨][326.32MB]
- 群星《我们的歌第六季 第2期》[320K/MP3][74.05MB]