前端-常用函数记录-持续更新
// 获取当前路径下?问号后边的值
GetQueryString = function (name) { const reg = new RegExp (`(^|&)${name}=([^&]*)(&|$)`); const href = window.location.href; const index = href.indexOf('?'); const r = href.substr(index + 1).match (reg); if (r != null) return unescape (r[2]); return null; };
调用示例:
获取“https://www.google.com/search?q=baidu” 这个路径 “q” 后面的 “baibu”
templateId('q');
"baidu"
// 全局唯一ID函数 uuid
GetUuid = function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace (/[xy]/g, c => { let r = (Math.random () * 16) | 0; let v = c == 'x' ? r : (r & 0x3) | 0x8; return v.toString (16); }); }
调用示例:
GetUUid();
"327aaf38-c195-4000-b5c4-d36bf9b2894e"
// 对象数组去重
arrayUnique = function (songs) { const result = {}; const finalResult = []; for (let i = songs.length - 1; i >= 0; i--) { result[songs[i].name] = songs[i]; } Object.keys(result).map((item) => finalResult.push(result[item])); return finalResult; }
// 拉取某个文件夹下面的所有文件
loadAllFile = function ('filePath','fileExp') { const filesMD = require.context(filePath, true,fileExp); return filesMD.keys(); }
/** * 自定义排序 * @param { 排序key,目前支持数字 } objKey * @param { 升序 asc | 降序 desc } order * @returns */ export function sortDiy(objKey, order = 'asc') { return function (obj1, obj2) { let val1 = obj1[objKey]; let val2 = obj2[objKey]; if (!isNaN(Number(val1)) && !isNaN(Number(val2))) { val1 = Number(val1); val2 = Number(val2); } if (val1 < val2) { return order === 'asc' ? -1 : 1; } if (val1 > val2) { return order === 'asc' ? 1 : -1; } return 0; }; } /** * 自定义排序 * @param { 排序key,目前支持时间 } objKey * @param { 升序 asc | 降序 desc } order * @returns */ export function sortDiyTime(objKey, order = 'asc') { return function (obj1, obj2) { const val1 = obj1[objKey]; const val2 = obj2[objKey]; if (Date.parse(val1) < Date.parse(val2)) { return order === 'asc' ? -1 : 1; } if (Date.parse(val1) > Date.parse(val2)) { return order === 'asc' ? 1 : -1; } return 0; }; }